在龙卷风Web应用程序中使用Babel和Mako模板

时间:2014-11-10 14:16:05

标签: internationalization tornado mako babel

我有一个龙卷风应用程序,它使用Mako进行模板化。使用Babel我能够创建翻译(mo文件),但是当我无法呈现翻译的字符串时。

我的html块(index.mako):

`<li> <a id="login"> ${_('Login')} / ${_('Signup')} </a></li>`

handler.py     class HomeHandler(BaseHandler):

    def get(self):
        hometemplate = makoLookup.get_template("index.mako")
        response_str = hometemplate.render()
        self.write(response_str)

response_str返回     <li> <a id="login"> Login / Signup </a></li>

如何在mako中实现国际化?我搜索的所有文档都解释了提取翻译,但找不到任何关于在mako模板中使用翻译的文档。

我尝试过使用Tornado-Babel,但找不到与mako模板集成的文档。

1 个答案:

答案 0 :(得分:0)

使用TornadoBabelMixin。我将self._传递给我的模板渲染功能。现在我的处理程序代码看起来像这样。

class HomeHandler(TornadoBabelMixin, BaseHandler):
    def get_user_locale(self):
        return locale.get("en_US")

    def get(self):
        hometemplate = makoLookup.get_template("index.mako")
        response_str = hometemplate.render(_ = self._)
        self.write(response_str)