我有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' )
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文件时,这有效:
set LANG=en_US something.exe
我做错了什么?
答案 0 :(得分:4)
现在这已成为一个常见问题,应该成为PyGTK常见问题解答。 例如,参见PyGTK bug report
简而言之,您遗漏了许多细节。例如:
1)从Python 2.4开始,在Windows上,仅为os.environ分配值 更改Python管理且不再具有的环境变量的副本 对C库维护的副本的任何影响(msvcr90 for Python,msvcrt 对于各种GTK +相关的dll's)。
2)一旦你照顾好上述内容,你还需要特别注意 配置libintl。这意味着你需要bindtextdomain()和 bind_textdomain_codeset()包括intl.dll和Python的gettext模块。
现在可能还有更多我不记得了,但你可以拿一个 看看我专门为你想要的东西编写的elib.intl模块 做(以及更多)。当它工作时,您只需设置LANGUAGE即可 环境变量到C以具有默认的美式英语。
你可以做到这一点 从.bat或.cmd文件或使用os.environ ['LANGUAGE'] ='C'befory 你导入elib.intl。