【问题标题】:python locale for gtk does not work on windowsgtk 的 python 语言环境在 Windows 上不起作用
【发布时间】:2011-10-24 05:14:18
【问题描述】:

我有 python 2.7 和 pygtk。我正在尝试在我的应用程序中为 gtk 设置语言环境,但没有运气。我的窗口是斯洛伐克语的,我想在我的应用程序中使用英语的按钮标签。如何解决?

我试过了,但没有运气(所有标签仍然是斯洛伐克语):

import os
os.environ['LANGUAGE'] = 'en_US'  #tried en_UK as well
os.environ['LANG'] = 'en_US'
os.putenv('en_US', 'LANG')
import locale
locale.setlocale(locale.LC_ALL, 'English_United Kingdom.1252' )

但是当我制作 cmd 文件时,它可以工作:

设置 LANG=en_US 某事.exe

我做错了什么?

【问题讨论】:

    标签: python gtk pygtk


    【解决方案1】:

    这些天来,这已成为一个常见问题,并且可能应该成为 PyGTK 常见问题解答。 参见例如这个 PyGTK bug report

    简而言之,您缺少很多细节。例如:

    1) 从 Python 2.4 开始,在 Windows 上,仅将值分配给 os.environ 更改 Python 管理的环境变量的副本,并且不再具有 对 C 库维护的副本的任何影响(用于 Python 的 msvcr90、msvcrt 用于各种 GTK+ 相关的 dll)。

    2) 一旦你处理了上述问题,你还需要特别注意 配置libIntl。这意味着您需要 bindtextdomain() 和 bind_textomain_codeSet()intl.dll和python的gettext模块。

    可能还有更多我现在不记得了,但你可以看看 看看我的elib.intl 模块,专门为你想要的东西而写 做(和更多)。当你让它工作时,你可以简单地设置语言 环境变量为c为默认的美国英语。

    你可以做到这一点 来自 .bat 或 .cmd 文件或使用 os.environ['LANGUAGE'] = 'C' 之前 你导入 elib.intl。

    【讨论】:

    • 您好 Dieter,感谢您的精彩解释和精彩的模块!我已经实现了你的模块,现在翻译工作正常,但不幸的是我在使用 py2exe 时遇到了问题。单击 exe 文件后,它以错误 Traceback(最近一次调用最后一次)结束:文件“sss.py”,第 1539 行,在 文件“sss.py”,第 512 行,在 init文件“elib_ init _ i> .pyc”,第1行,在 importError中:没有名为PKG_Resources的模块---如何用PKG_Resources解决此问题?提前谢谢 span>
    • ah是,py2exe问题... py2exe似乎不支持命名范围包,因此对pkg_resources遇到问题。一种选择是只获取 elib/intl/__init__.py 文件并将其作为 intl.py 保存在本地项目中(确保将导入更改为“import intl”,然后按如下方式使用它:“intl.install( )”或“intl.install_module()”。
    猜你喜欢
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2015-08-22
    • 2014-01-17
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多