匿名用户
1级
2017-07-29 回答
这个没有统一的地方,要看你具体的程序是怎么读取这个显示单位的。
可以尝试下面的做法,不一定可以
进入Python的安装目录中Tools\i18n目录
执行pygettext.py
生成一个messages.pot
修改messages.pot中编码
CHARSET gb2312
ENCODING utf8
编辑messages.pot
添加需要国际化的内容,另存为*.po文件
我这里存成了lang.po
编译lang.po
执行msgfmt.py lang.po
生成lang.mo
在项目中建立目录
\locale\zh_CN\LC_MESSAGES
\locale\en_US\LC_MESSAGES
LC_MESSAGES这个是必须的
同时将刚刚的lang.po、lang.mo放入到zh_CN\LC_MESSAGES\这个目录下。
也可以生成一个英文的对应文件放入到en_US\LC_MESSAGES\目录下
测试下效果,输出用_(str)代替str。成功输出中文
将zh_CN换成en_US如果没有配置默636f7079e79fa5e9819331333363383433认直接输出原内容,如Hello YY
完整的test.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import gettext
gettext.install('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', unicode=False)
gettext.translation('lang', 'F:\Workspaces\server\MobileApiServer\project\locale', languages=['zh_CN']).install(True)
print _('Hello YY')
项目直接使用,服务启动的时候加载所有的mo文件。
在请求的过滤入口处设置本次请求的语言,后面代码中就可以直接使用啦