【发布时间】:2012-04-16 09:06:49
【问题描述】:
我正在尝试将 i18n 功能添加到我正在处理的一个小测试项目中。我正在使用 webapp2_extras i18n 库。我有使用 babel 命令行创建的带有编译翻译 .mo 文件的语言环境文件夹。该应用程序本身只是一个简单的 django 模板和一个带有一个处理程序的 main.py。当我在 main 中使用 gettext 方法时,我确实得到了翻译后的文本,但模板内用 {% trans %} 标签包裹的字符串没有被翻译。这是处理程序:
class MainHandler(webapp2.RequestHandler):
def get(self):
locale = self.request.GET.get('locale', 'en_US')
i18n.get_i18n().set_locale(locale)
message = i18n.gettext('Hello, world!')
self.response.out.write(template.render("templates/index.html"))
在“消息”中,字符串被翻译,但在模板中,用 {% trans %} 包裹的相同字符串不是。
谢谢,
【问题讨论】:
-
您是否启用了 jinja2.ext.i18n 扩展?我相信它在 webapp2 配置默认值中是关闭的。
-
我没有使用 jinja,我使用的是 django 模板。
-
我看到你使用 jinja2。因为 django-template-render 没有 template.render-method。请再次检查或在此处发布导入部分。
-
从 google.appengine.ext.webapp 导入模板
标签: python django google-app-engine internationalization webapp2