Turbogears 的国际化

Turbogears默认支持国际化,但是自动生成的模板依然有一点小问题,比如setup.py里配置的模板扩展名是.mako,但自动生成的模板扩展名是.mak,还有就是Babel默认把模板的编码当成ascii,抽取需要翻译的信息时会报错。如果要修改配置的话方法如下:

在setup.cfg的[extract_messages]中添加

mapping_file=babel.cfg

然后在同一目录新建一个babel.cfg文件,添加一行内容

# Extraction from Python source files
[python: **.py]

# Extraction from Mako templates
[mako: templates/**.mak]
input_encoding = utf-8

之后就可以正常抽取信息了:

python setup.py extract_messages

python setup.py init_catalog -l zh_CN

找到 i18n/[country code]/LC_MESSAGES/[project-name].po ,编辑翻译内容。(可以使用Poedit,这里下载

最后

python setup.py compile_catalog

重新运行你的项目看看效果吧!

网页增加了其他内容需要翻译时,使用以下指令:

python setup.py update_catalog -l zh_CN

Warning:我在这使用zh_CN,因为实际操作的时候发现,Babel只接受下划线而不是zh-CN,这是让我郁闷的一点,因为浏览器发过来的是zh-CN,因此需要多一层处理.

原文
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。