首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Babel实现GAE with应用程序国际化

利用Babel实现GAE with应用程序国际化
EN

Stack Overflow用户
提问于 2010-09-29 11:51:17
回答 1查看 1.4K关注 0票数 12

您将如何使用巴贝尔来国际化Google应用程序?我在这里寻找所有的阶段:

  1. 标记要翻译的字符串。
  2. 提取它们。
  3. 跃迁
  4. 配置应用程序以加载浏览器请求的正确语言
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-30 06:25:17

1)在代码和模板中使用_() (或gettext())。模块全局或类定义中设置的翻译字符串应该使用某种形式的惰性gettext(),因为当模块导入时,i18n将不可用。

( 2)使用pybabel提取所有翻译。在这里,我们传递两个要扫描的目录:模板dir和app dir。这将在messages.pot目录中创建一个/locale文件,其中包含这些目录中的所有字符串。babel.cfg是根据您使用的模板引擎而变化的提取配置:

代码语言:javascript
复制
$ pybabel extract -F ./babel.cfg -o ./locale/messages.pot ./templates/ ./app/

3)为每种语言初始化一个目录。这只做了一次。在这里,我们初始化三个翻译,en_US、es_ES和pt_BR,并使用在步骤2中创建的messages.pot文件:

代码语言:javascript
复制
$ pybabel init -l en_US -d ./locale -i ./locale/messages.pot 
$ pybabel init -l es_ES -d ./locale -i ./locale/messages.pot 
$ pybabel init -l pt_BR -d ./locale -i ./locale/messages.pot

翻译信息。它们将在每个翻译目录中的.mo文件中。翻译完所有语言环境后,编译它们:

代码语言:javascript
复制
$ pybabel compile -f -d ./locale

稍后,如果添加了新的翻译,请重复步骤2,并使用新的.pot文件更新它们:

代码语言:javascript
复制
$ pybabel update -l pt_BR -d ./locale/ -i ./locale/messages.pot

然后翻译新字符串并重新编译翻译。

4)这里的策略可能会有所不同。对于每个请求,您必须设置要使用的正确翻译,并且可能希望缓存加载的翻译以便在后续请求中重用。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3821312

复制
相关文章

相似问题

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