PyGtk3和Gettext-在运行时选择语言时遇到问题

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

长话短说,当我认为字符串会被翻译时,什么也没发生。

我有一个PyGtk应用程序和一个模块,我在其中存储要通过以下方式转换的所有字符串:

'''
    Strings module.
'''

....
CANCEL_BUTTON_TEXT = _("Cancel")
BACK_BUTTON_TEXT = _("Back")
....

依此类推。因此,它们可以从其他模块中使用,例如:

'''
    View module.
'''

import strings

# Usage example
button.set_label(strings.CANCEL_BUTTON_TEXT)
button.set_tooltip(strings.TOOLTIP)
window_title.set_title(strings.WINDOW_TITLE)
...

我已经创建了必要的.mo文件。这是我的嘲讽:

  • /语言环境
    • / es
      • LC_MESSAGES
        • base.mo
        • base.po
    • / en
      • LC_MESSAGES
        • base.mo
        • base.po
    • base.pot

如文档所述(https://docs.python.org/3/library/gettext.html),在我的main.py中,我有以下几行:

import gettext
gettext.install('myapplication')

es_lang = gettext.translation('base', localedir='locales', languages=['es'])
en_lang = gettext.translation('base', localedir='locales', languages=['en'])

es_lang.install()

然后,在我的应用程序中,我有一个按钮,当按下该按钮时,将执行以下行:

en_lang.install()

但是小工具仍使用西班牙语。有人可以帮我吗?

internationalization pygtk gettext
1个回答
0
投票

我已经解决了我的问题。当我有更多时间时,我将编辑此答案并发布问题/解决方案。

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