Python gettext - не переводится - PullRequest
       6

Python gettext - не переводится

6 голосов
/ 26 февраля 2011

Пример программы на Python: [CGI-скрипт, поэтому он должен выбирать свой собственный язык, а не использовать какую-либо установку ОС хоста]

import gettext
gettext.install('test', "./locale")
_ = gettext.gettext

t = gettext.translation('test', "./locale", languages=['fr'])
t.install()

print _("Hello world")

. / Locale / fr / LC_messages / test.mo содержит перевод (в виде двоичного файла, сгенерированного путем запуска msgfmt для файла .po).

Программа выводит «Hello world» вместо переведенной версии. В чем может быть проблема?

1 Ответ

5 голосов
/ 15 октября 2012

Может быть, этот ответ слишком поздно, но я только что нашел это и думаю, что он может вам помочь.

import gettext

t = gettext.translation('test', "./locale", languages=['fr'])
_ = t.gettext

print _("Hello world")

В моей собственной программе я сделал это так:

import gettext

DIR = "lang"
APP = "ToolName"
gettext.textdomain(APP)
gettext.bindtextdomain(APP, DIR)
#gettext.bind_textdomain_codeset("default", 'UTF-8') # Not necessary
locale.setlocale(locale.LC_ALL, "")
LANG = "FR_fr"


lang = gettext.translation(APP, DIR, languages=[LANG], fallback = True)
_ = lang.gettext

Примечание

В моей программе есть каталог lang . Для каждого языка каталог составляется в lang : * XX_xx * (en_US) Внутри каталога en_US есть LC_MESSAGES, а внутри TOOLNAME.mo

Но это мой способ общения на разных языках.

...