Python 的 gettext 语言环境默认值

问题描述 投票:0回答:1

我用英式英语 en_GB 写作。该脚本适用于我为其提供 .mo 翻译文件的语言。但是,如果我在我的计算机上运行它,则不需要 .mo 文件从 en_GB 转换为 en_GB 并且没有一个文件,因此

gettext.translation
失败。有什么办法可以避免这种情况吗? (同样的情况会发生在为我没有为其创建文件的任何其他语言设置的计算机上。)

import locale
language = locale.getlocale()[0]
lang = gettext.translation("myapp", localedir='blah', languages=[language])
_ = lang.gettext

print(_('message'))

解决方法是拥有一个 en_GB 到 en_GB 文件,但这是一个障碍,需要额外维护。

python linux gettext
1个回答
0
投票

只需将

fallback
设置为
True
.

lang = gettext.translation("myapp", localedir='blah', languages=[language], fallback=True)

这将使

gettext.translation
返回一个
NullTranslations
实例,而不是抛出
OSError
异常。

NullTranslations
gettext
方法只会返回提供的消息。

© www.soinside.com 2019 - 2024. All rights reserved.