今天上午折腾了半天,不妨记个笔记。
我们假设一个傻傻的 app 叫做 foo_app,再虚构一些目录。真正使用的时候可别直接照抄哦。
1.Python 文件
首先要加入下面的三行
import gettext from gettext import gettext as _ gettext.textdomain('foo_app')
然后就可以用 gettext 通用的格式了。例:
print _('Beautiful day!')
貌似 Python 里面还不支持嵌入给翻译者的注释,所以这里一定要用表达清晰的英文。
2.Glade 文件
对于 Glade 文件来说是非常简单的,只要把某个部件的“可译的”勾上就万事大吉了。还是那句话,要用人类可读的英语。
当然为了感谢一下冒着烈日辛勤翻译的 translators,不妨在“翻译者致谢”中写上 translator-credits。这样翻译者可以轻松地将这个字串换成自己的大名然后臭显摆去。
3.转换 Glade 的 XML 文件为 .h 文件
第一步要把 .glade 的 XML 文件转换成一些 .h 文件,以便生成 pot 文件。
intltool-extract --type=gettext/glade some_dir/FooWindow.glade
4.生成 pot 文件
这一步很爽,直接通配符就行了。
xgettext --language=Python --keyword=_ --keyword=N_ --output=po/foo_app.pot some_dir/*.h some_other_dir/*.py *.py
这样就产生了一个 pot 文件,然后你就可以考虑用这个 pot 泡壶茶喝了。
5.开始翻译吧!
这里的内容就不赘述了,详细的可以看自由软件中文化工作指南(L10N)。