wxPython-国际化设置
得益于gettext的支持,wxpython可以使用gettext库来让你的应用程序支持多国语,走向世界.在wxpython中有个比较方便的脚本mki18n.py,来自动生成.po和.mo.下面是一个自动生成的脚本:
gen_lang.sh放在你工程目录的lang或languages目录下,注意:这里生成的message.pot中的CHARSET已经要替换掉,否则程序无法执行,例如,替换成"UTF-8".
#!/bin/bash # mki18n.py依赖app.fil,里面是所有的py文件列表 find ../ -iname "*.py" -print >app.fil # 生成.po文件,domain一定要换成自己的 python mki18n.py -v -p --domain=your_application_name ./ # 上句命令,会生成message.pot文件,这个是一个模板文件. # 如果需要zh_CN的翻译,可以拷贝message.pot为 your_applaciton_name_zh_CN.po # 那么每次执行后就会生成your_applaciton_name_zh_CN.po.new,比较一下,合入新的未翻译的条目吧. # 生成.mo文件 # 这个会生成类似 # zh_CN/LC_MESSAGES/your_applaction_name.po python mki18n.py -m -e -v --domain=your_application_name --moTarget=./
在应用程序中,你只需要调用下面的install函数即可.
# coding: utf-8 import gettext def install(localdir, lang): gettext.translation("sgsgame", localedir=localdir, languages=lang).install(True)
例如:
# languages install import util langdir = os.path.join(home, "lang") try: util.i18n.install(langdir, ['zh_CN']) except: traceback.print_exc() util.i18n.install(langdir, ['en_US'])
然后,应用程序中,所有 _()包括的字符串都会被翻译成中文,当然,前提是你已经在po文件中翻译好了.
参考连接: http://wiki.wxpython.org/Internationalization