2 回答
TA贡献1777条经验 获得超3个赞
最后,我发现了错误。由于语言目录所在目录的路径而导致的错误。您必须从项目的根目录而不是从要翻译文本的文件中指定此路径。所以,我的功能最终是:
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条经验 获得超5个赞
问题:使用 gettext 库翻译文本
从文档:
获取文本(消息)
在目录中查找消息 id 并返回相应的消息字符串,作为 Unicode 字符串。如果目录中没有消息 id 的条目,并且已设置回退,则查找将转发到回退的 gettext() 方法。否则,返回消息 ID。
如果您更改以下内容,您的代码将对我有用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')
根据Python Documentation,您必须执行以下操作:
import gettext
gettext.bindtextdomain('myapplication', '/path/to/my/language/directory')
gettext.textdomain('myapplication')
_ = gettext.gettext
# ...
print(_('This is a translatable string.'))
添加回答
举报