Как использовать мою собственную локаль для pyGTK? - PullRequest
1 голос
/ 20 июня 2011

Я пишу софт, используя pyGTK.Я хотел бы знать, как заставить pyGTK использовать мои собственные файлы * .mo для GTK.

На самом деле моя проблема в том, что я пишу код под Linux, но хочу распространять его под Windows.Чтобы получить исполняемый файл Windows, я использую cx_Freeze, я могу включить свой собственный текст gettext для своих текстов, и он работает хорошо, но я хочу также включить pytek gettext, потому что, если я этого не делаю, текст на кнопке все еще на английском языке, дажеWindows на другом языке.И так как я не хочу поддерживать все языки GTK, я не хочу включать все языки.

Заранее спасибо и извините за плохой английский ...

EDiT: Так какфрагмент кода лучше всего:

APP_NAME="MyWonderfulApp"
LOCALE_DIR="locale"
#Translation stuff

local_path = os.path.realpath(os.path.dirname(sys.argv[0]))
langs = []
lc, encoding = locale.getdefaultlocale()
if (lc):
    langs = [lc]

language = os.environ.get('LANGUAGE', None)
if (language):
    langs += language.split(":")

langs += ["fr_FR", "en_US"]
gettext.bindtextdomain(APP_NAME, LOCALE_DIR)
gettext.textdomain(APP_NAME)
lang = gettext.translation(APP_NAME, LOCALE_DIR, languages=langs, fallback = True)
_ = lang.gettex

1 Ответ

0 голосов
/ 11 августа 2011

Вы правильно инициализируете gettext Python, но не libintl, который используется GTK + и друзьями.Вы можете взглянуть на мой elib.intl модуль, чтобы увидеть, как это делается.

...