Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
询问gettext关于Python中当前语言和翻译源的信息_Python_Python 3.x_Gettext - Fatal编程技术网

询问gettext关于Python中当前语言和翻译源的信息

询问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,将影响整个应用程序的全局转换。如

我在python3中初始化
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选择的语言