我初始化gettext
很简单的像这样的python3。
>>> import gettext
>>> gettext.install('i18n-test', 'locales')
>>> print(_('Hello World!'))
Hallo Welt!
我能问的gettext它使用当前的语言(不能是系统默认LANGUAGE
!),并在那里从打开.mo
文件?
我看不出在API中是这样的。
find
模块的gettext
功能是你所需要的。更确切地说,它是内部使用install
功能,所以它会返回install
会用什么:
qazxsw POI 这将安装在Python内建的命名空间功能qazxsw POI,基于域,LOCALEDIR和代码集被传递给函数
gettext.install(domain, localedir=None, codeset=None, names=None)
...
然后
_()
返回基于域,LOCALEDIR和语言,这是首先被传递给translation()
以获得相关的.mo文件路径列表的翻译实例...
所以,你应该使用:
gettext.translation(domain, localedir=None, languages=None, class_=None, fallback=False, codeset=None)
它应该返回一个文件名一样find()
,其中file = gettext.find('i18n-test', 'locales')
是gettext的选择的语言。
从文档;
如果使用此API,您将在全球范围影响整个应用程序的翻译。通常,这是你想要什么,如果你的应用是单语,与语言依赖于用户的语言环境的选择。如果你是一个本地化的Python模块,或者如果你的应用需要切换上飞的语言,你可能想使用基于类的API来代替。
所以,你可能会更好使用localedir/language/LC_MESSAGES/domain.mo
做到这一点。祝好运!