首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可汗书院的语言本土化

可汗书院的语言本土化
EN

Stack Overflow用户
提问于 2012-08-02 14:37:15
回答 1查看 809关注 0票数 12

我目前正在做可汗学院的语言本地化工作,我已经从Google Code下载了源码8051。在调查信息和在线查看代码之后,使用jinja2作为模板语言来创建项目。我可以用巴别塔来完成我的工作。

通过以下工作,我最终可以通过以下修改启用模板引擎可解析的{%trans%}{%endtrans%}标签:

在webapp2_extra/jinsa2.py中:

代码语言:javascript
复制
from django.utils import translation
    env.install_gettext_translations(translation)

在config_jinja2.py中

代码语言:javascript
复制
-- put following line
"extensions": ['jinja2.ext.i18n']

然而,我翻译的*.mo*.po模板(来自pybabel)不能正确地将值中的标记转换为目标语言。我认为巴别塔集成应该来自webapp2_extra.i18n.py,但我不知道如何启用它。

因为在Google上很少有帖子提到以下代码可能会起作用:

代码语言:javascript
复制
from webapp2_extras import i18n 
    env.install_gettext_translations(i18n) 

但是,它会失败,因为它不能识别{%trans%}标签。那么,有没有人有处理相同问题的经验,或者对jinja2 i18n问题有任何建议?

感谢您的建议。

EN

回答 1

Stack Overflow用户

发布于 2012-12-21 15:57:20

这是一个适合我的模块(在jinja2模板中转换{% trans %}标记)。

main.py

代码语言:javascript
复制
import webapp2
from webapp2_extras import i18n
from jinja2 import FileSystemLoader, Environment

env = Environment(loader=FileSystemLoader('/path/to/my/templates'),
        extensions=['jinja2.ext.i18n'])
env.install_gettext_translations(i18n)

class HelloWorld(webapp2.RequestHandler):

    def _find_locale(self):
        #needs customization
        lang = self.request.accept_language.best_match(('en-us', 'fr'))
        if ('fr' in lang):
            return 'fr_FR'
        return 'en_US'

    def get(self):
        i18n.get_i18n().set_locale(self._find_locale())
        template = env.get_template('hello.html')
        self.response.write(template.render())

config = {'webapp2_extras.i18n': {'translations_path': './i18n'}}

app = webapp2.WSGIApplication([
    ('/', HelloWorld),
], config=config, debug=True)

def main():
    from paste import httpserver
    httpserver.serve(app, host='127.0.0.1', port='8080')

if __name__ == '__main__':
    main()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11772256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档