询问gettext关于Python中当前语言和翻译源的信息
我在python3中初始化询问gettext关于Python中当前语言和翻译源的信息,python,python-3.x,gettext,Python,Python 3.x,Gettext,我在python3中初始化gettext非常简单 >>> import gettext >>> gettext.install('i18n-test', 'locales') >>> print(_('Hello World!')) Hallo Welt! 我是否可以询问gettext当前使用的语言(不能是系统默认的语言!)以及它从何处打开.mo文件 我在API中看不到类似的内容。从文档中 如果使用此API,将影响整个应用程序的全局转换。如
gettext
非常简单
>>> import gettext
>>> gettext.install('i18n-test', 'locales')
>>> print(_('Hello World!'))
Hallo Welt!
我是否可以询问gettext当前使用的语言(不能是系统默认的语言
!)以及它从何处打开.mo
文件
我在API中看不到类似的内容。从文档中
如果使用此API,将影响整个应用程序的全局转换。如果您的应用程序是单语的,并且语言的选择取决于用户的语言环境,那么这通常就是您想要的。如果您正在本地化Python模块,或者如果您的应用程序需要动态切换语言,那么您可能希望改用基于类的API
因此,您可能会更好地使用。祝你好运 您需要的是
gettext
模块的find
功能。更确切地说,它是由安装
函数内部使用的,因此它将返回安装
将使用的内容:
gettext.install(域,localedir=None,代码集=None,名称=None)
这将基于传递给函数
translation()
的域、localedir和代码集,在Python的内置名称空间中安装函数
然后
gettext.translation(域,localedir=None,语言=None,类=None,回退=False,代码集=None)
返回基于域、localedir和语言的翻译实例,这些实例首先传递给find()
,以获取相关.mo文件路径的列表
因此,您应该使用:
file = gettext.find('i18n-test', 'locales')
它应该返回像localedir/language/LC_MESSAGES/domain.mo
这样的文件名,其中language
是gettext选择的语言