如何将python gettext翻译设置为源语言

How to set python gettext translations to source language

提问人:Abel Gutiérrez 提问时间:11/5/2023 更新时间:11/5/2023 访问量:20

问:

我有这段翻译代码:

translations = gettext.translation(
    locale_language,
    localedir="gui/locale",
    languages=[locale_language]
)
translations.install()

可以是(源语言)或(翻译语言)locale_language"en"msgid"es"msgstr

我需要正确切换语言,但由于源语言是英语,因此未填写。我必须这样做才能在语言更改时运行以前的代码。en.moes.moen.mo

我想知道是否有更好的方法可以做到这一点,即没有空(上面的代码也需要检查 if ,但这不是问题)。en.moiflocale_language == "en"

python gettext

评论


答:

1赞 gimix 11/5/2023 #1

有一个永无止境的讨论,是否应该是实际的英语字符串,或者更确切地说是一个“键”,它需要翻译成英语,就像任何其他语言一样:例如,看看这个问题。当然,如果你使用键字符串,文件需要像其他文件一样完整。msgiden.mo

但是,如果您想使用实际的英语字符串作为 s,那么您可以简单地避免安装英语翻译,并可能定义一个虚拟函数,例如msgid_()

def _(msg):
    return msg

这样你就根本不需要了。en.mo

评论

0赞 Abel Gutiérrez 11/5/2023
虚拟文件在我的代码中将是一个问题,因为我在多个文件中使用相同的虚拟文件。填充似乎是最好的解决方案(也是最乏味的)。_()_en.mo