2 回答

TA貢獻1777條經(jīng)驗 獲得超3個贊
最后,我發(fā)現(xiàn)了錯誤。由于語言目錄所在目錄的路徑而導致的錯誤。您必須從項目的根目錄而不是從要翻譯文本的文件中指定此路徑。所以,我的功能最終是:
def set_message(self, language):
t = gettext.translation("basketmetrics_i18n", "../i18n", fallback=True, languages=["'" + language + "'"])
t.install()
_ = t.gettext
self.message = _("mensaje_dd_1")
因為我的目錄語言“i18n”在項目的根目錄下

TA貢獻1876條經(jīng)驗 獲得超5個贊
問題:使用 gettext 庫翻譯文本
從文檔:
獲取文本(消息)
在目錄中查找消息 id 并返回相應的消息字符串,作為 Unicode 字符串。如果目錄中沒有消息 id 的條目,并且已設置回退,則查找將轉(zhuǎn)發(fā)到回退的 gettext() 方法。否則,返回消息 ID。
如果您更改以下內(nèi)容,您的代碼將對我有用languages=[language]:
def set_message(self, language):
t = gettext.translation(package, localedir, fallback=True, languages=[language])
t.install()
_ = t.gettext
message = _("mensaje_dd_1")
set_message('es')
根據(jù)Python Documentation,您必須執(zhí)行以下操作:
import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print(_('This is a translatable string.'))
添加回答
舉報