我是使用 python 进行 GUI 编程的新手,我需要一个简单的示例来说明如何根据位于项目内部的 .po 文件(我能够生成)更改 GUI 语言。我正在使用 GNOME Builder 来完成这项任务。
我想要的是从生成器(或 Glade)生成的 xml 加载 gui 定义,并让程序根据我的计算机的区域设置/语言更改文本。
test
|
|- po
| |- it.po
| |- en.po
| |- ...
|
|- src
| |- test.in
| |- main.py
| |- window.py
| |- window.ui
| |- ...
这是包含主要 UI 类的文件
#window.py
from gi.repository import Gtk
@Gtk.Template(resource_path='/path/to/ui/window.ui')
class TestWindow(Gtk.ApplicationWindow):
__gtype_name__ = 'TestWindow'
label = Gtk.Template.Child()
def __init__(self, **kwargs):
super().__init__(**kwargs)
print(_("hello"))
我发现更改我放入代码中的字符串的语言就像编写一样简单
_("some string")
因此,当加载 window.py 时,我在终端中得到“ciao”(意大利语为你好)。但我似乎无法更改 GUI 小部件的语言,例如我看到“随机文本”而不是“Testo a caso”(再次,意大利语翻译)。
有没有我可以传递给 Gtk.Template 的参数,或者我可以做一些 python 魔术来修改这种行为?