mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Support gettext translation in templates
This commit is contained in:
parent
40a957009d
commit
7edcec66c9
@ -239,3 +239,13 @@ def init(locale_dirs, language, catalog='sphinx'):
|
|||||||
if hasattr(translator, 'ugettext'):
|
if hasattr(translator, 'ugettext'):
|
||||||
translator.gettext = translator.ugettext
|
translator.gettext = translator.ugettext
|
||||||
return translator, has_translation
|
return translator, has_translation
|
||||||
|
|
||||||
|
|
||||||
|
def get_translator(catalog='sphinx'):
|
||||||
|
global translators
|
||||||
|
translator = translators.get(catalog)
|
||||||
|
if translator is None:
|
||||||
|
translator = gettext.NullTranslations()
|
||||||
|
if hasattr(translator, 'ugettext'):
|
||||||
|
translator.gettext = translator.ugettext
|
||||||
|
return translator
|
||||||
|
@ -14,12 +14,14 @@ from jinja2.sandbox import SandboxedEnvironment
|
|||||||
|
|
||||||
from sphinx import package_dir
|
from sphinx import package_dir
|
||||||
from sphinx.jinja2glue import SphinxFileSystemLoader
|
from sphinx.jinja2glue import SphinxFileSystemLoader
|
||||||
|
from sphinx.locale import get_translator
|
||||||
|
|
||||||
|
|
||||||
class BaseRenderer(object):
|
class BaseRenderer(object):
|
||||||
def __init__(self, loader=None):
|
def __init__(self, loader=None):
|
||||||
self.env = SandboxedEnvironment(loader=loader)
|
self.env = SandboxedEnvironment(loader=loader, extensions=['jinja2.ext.i18n'])
|
||||||
self.env.filters['repr'] = repr
|
self.env.filters['repr'] = repr
|
||||||
|
self.env.install_gettext_translations(get_translator())
|
||||||
|
|
||||||
def render(self, template_name, context):
|
def render(self, template_name, context):
|
||||||
return self.env.get_template(template_name).render(context)
|
return self.env.get_template(template_name).render(context)
|
||||||
|
Loading…
Reference in New Issue
Block a user