将 GTK 按钮的语言设置为不同的语言 - Linux - Python

Set language of GTK Buttons to a different language - Linux - Python

如何将 Gtk3 Stock Buttons 的默认语言设置为另一种语言?

我试过:

sudo apt-get install language-pack-en language-pack-gnome-en

但是:

import locale
from pprint import pprint

pprint(locale.getlocale(locale.LC_ALL))
locale.setlocale(locale.LC_ALL, 'en_EN.utf8')

回复:

('de_DE', 'UTF-8')
Traceback (most recent call last):
  File "tp_tools.py", line 41, in <module>
    locale.setlocale(locale.LC_ALL, 'en_EN.utf8')
  File "/usr/lib/python2.7/locale.py", line 581, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

使用 Python 2.7 和 Gtk3

开发 Linux Mint 18

en_EN.utf8 并且 en_EN 不是有效的语言环境(与 de_DE 相反)。您可以在 shell.

中使用 locale -a 列出已安装的语言环境

例如,正确的语言环境应该是 en_USen_GB。正确的指令是 locale.setlocale(locale.LC_ALL, 'en_US').

问题是 gi.repository.Gtk 在导入时调用 Gtk.init(),之后几乎不可能对本地化进行任何更改。此外,将语言环境设置为硬编码字符串会使您的应用程序几乎不可移植,因为您可以假定存在的唯一语言环境是 "C",它甚至不包括 UTF-8 支持。

到目前为止,我找到的唯一解决方案是在任何导入 GLib 模块之前设置环境变量 'LANGUAGE',gettext 给予优先级并且不需要附加编码定义(more information).这对我有用:

import os
os.environ["LANGUAGE"] = "en"

PS: 停止使用 Python 2,它已经过时了。
PPS: Gtk+ 3 库存按钮已弃用。