我在 Windows 上遇到了 gettext 问题。我正在使用来自 python 的 gettext 模块和名为 gettext_windows 的第三部分模块: http ://bazaar.launchpad.net/~bialix/gettext-py-windows/trunk/view/head:/gettext_windows.py 代码如下:
gettext_windows.setup_env()
_ = gettext.gettext
self._appName = "bitbucket"
self._localeDir = os.getcwd() + "\\data\\locale\\"
self._languages = ["it_IT", "pl_PL"]
if gettext_windows.get_language()[0] in self._languages:
lang = gettext_windows.get_language()[0]
self._translation = gettext.translation(self._appName, self._localeDir, lang)
self._translation.install(unicode=True)
使用 PoEdit创建一个.po/ .mo 文件。然后我保存这些文件并将它们放入:
data
----locale/
--------it_IT/
------------LC_MESSAGES/
----------------bitbucket.mo
----------------bitbucket.po
data
----locale/
--------pl_PL/
------------LC_MESSAGES/
----------------bitbucket.mo
----------------bitbucket.po
当我尝试执行我的应用程序时,出现以下错误:
未找到域 bitbucket 的翻译文件
谁能解释我怎么了?
这些文件位于良好的目录中。
如果我尝试使用 gettext 模块中的用户 find() 方法:
print gettext.find('bitbucket', self._localeDir, self._languages, all=True)
它可以正常工作并返回 it_IT/pl_PL 语言的 *.mo 文件