我目前正致力于可汗学院的语言本地化,我已经从Google Code下载了源代码8051 .在调查信息和在线查看代码之后,该项目使用jinja2作为模板语言.我可以用babel来完成我的工作.
通过以下工作,我最终可以通过以下修改启用{%trans%}
和{%endtrans%}
标记模板引擎的可解析性:
在webapp2_extra/jinja2.py中:
from django.utils import translation
env.install_gettext_translations(translation)
Run Code Online (Sandbox Code Playgroud)
在config_jinja2.py中
-- put following line
"extensions": ['jinja2.ext.i18n']
Run Code Online (Sandbox Code Playgroud)
但是,我*.mo
和*.po
(来自pybabel)的翻译模板没有正确地将值内的标签转换为目标语言.我认为babel集成应该来自webapp2_extra.i18n.py,但我不知道如何启用它.
Google中的帖子很少提及以下代码可能有效:
from webapp2_extras import i18n
env.install_gettext_translations(i18n)
Run Code Online (Sandbox Code Playgroud)
但是,它失败了,因为它无法识别{%trans%}
标签.那么有没有人有相同问题的经验或对jinja2 i18n问题有任何建议?
感谢任何建议.