My program’s .ui file
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkApplicationWindow" id="win">
<property name="child">
<object class="GtkLabel">
<property name="label" translatable="yes">Label</property>
<property name="height-request">40</property>
</object>
</property>
</object>
</interface>
My program’s .py file
#!/usr/bin/python
import gettext
gettext.install('test-gtk-builder-l10n')
import gi
gi.require_version('Gtk', '4.0')
from gi.repository import Gtk
builder = Gtk.Builder.new_from_file('test-gtk-builder-l10n.ui')
win = builder.get_object('win')
win.set_title(_("Test Gtk.Builder internationalization support"))
app = Gtk.Application(application_id="org.example.l10n.test")
def on_activate(app):
app.add_window(win)
win.present()
app.connect('activate', on_activate)
app.run()
Values in my program’s ur.po
file
#: ../test-gtk-builder-l10n.py:11
msgid "Test Gtk.Builder internationalization support"
msgstr "وِنڈو ٹائٹل"
#: ../test-gtk-builder-l10n.ui:6
msgid "Label"
msgstr "لیبل"
Result
Actual Question
Why is it that text written directly in python file gets translated but the text in interface definition file does not? Is this a bug in GTK4 or am I doing something wrong?
Note
I also tried settings Gtk.Builder
's translation domain and adding _
at the start of translatable text in .ui file. None of these methods worked.