0

我在 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 文件

4

1 回答 1

0

我建议遵循 wxPython wiki 上的说明:http ://wiki.wxpython.org/Internationalization#How_to_get_gettext_tools_for_Win32

如果遇到困难,请在 wxPython 邮件列表上寻求帮助。那里有很多人将这种支持写入他们的应用程序。

于 2012-10-23T14:57:55.787 回答