如何在python / gettext中在运行时更改语言?

时间:2017-06-15 22:39:30

标签: python gettext

这是我在Python中首次使用gettext(通常是gettext)。我理解了很多东西,我的测试应用程序运行良好:一个命令行参数改变了输出消息的语言。

现在我想让用户在启动时更改语言。

我知道我可以加载许多翻译并在运行时安装其中一个,但是许多字符串已经使用旧语言翻译,并且不会再次更改。

任何简单的解决方案?

import gettext

language = "it"
t_en = gettext.translation("messages", localedir="locale", languages=["en"], fallback=True)
t_it = gettext.translation("messages", localedir="locale", languages=["it"], fallback=True)


def language_install():
    if language == "it":
        t_it.install()
    else:
        t_en.install()

language_install()
main_menu = [_("First item"), _("Second item"), _("Switch language"), _("Exit")]

while True:
    print("MAIN MENU")
    print("---------")
    for (n, item) in enumerate(main_menu):
        print("{:d}: ".format(n + 1) + item)
    print("")
    ans = input(_("Select an item") + ": ")
    if ans == "4":
        break
    elif ans == "3":
        if language == "en":
            language = "it"
        else:
            language = "en"
        language_install()
    else:
        print(_("You have selected item") + " " + ans)

0 个答案:

没有答案