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

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

我有这段代码用于翻译:

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

其中

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

我需要有

en.mo
es.mo
才能正确切换语言,但由于源语言是英语,所以
en.mo
未填写。当语言更改时,我必须这样做才能运行以前的代码。

我想知道是否有更好的方法来做到这一点,即没有空的

en.mo
(上面的代码也需要一个
if
检查是否
locale_language == "en"
,但这不是问题)。

python gettext
1个回答
0
投票

关于

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

但是,如果您想使用实际的英语字符串作为

msgid
那么您可以简单地避免安装英语翻译,并且可能定义一个虚拟
_()
函数,例如

def _(msg):
    return msg

这样您就根本不需要

en.mo

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