Python gettext – не перевод

Пример программы 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» вместо переведенной версии. В чем может быть проблема?

Возможно, этот ответ ПУТЬ слишком поздно, но я только что нашел это, и я думаю, он может вам помочь.

 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

Но это мой путь к перекрестному языку.