gtk的python语言环境在Windows上不起作用

时间:2011-08-10 15:32:12

标签: python gtk pygtk

我有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 

我做错了什么?

1 个答案:

答案 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。