archinstall/archinstall
Softer d3ed8cd872 Extract binding descriptions into base.pot and translate raw widget bindings (#4584)
xgettext only knew the tr keyword, so binding descriptions - translated
at runtime via tr(b.description) in _translate_bindings() - never made
it into base.pot. The strings added manually in #4363 were wiped by the
regeneration in #4557.

Teach the generator two more keywords: Binding:3 picks up our own
binding definitions, and tr_noop marks strings that only exist inside
the textual package, listed in the new tui/binding_descriptions.py.
The list walks the full MRO of the textual classes used in components.py,
since _translate_bindings() operates on the merged bindings map (e.g.
Scroll Up comes from ScrollView and carries live translations in 18
locales today).

Raw Input and Button widgets never went through _translate_bindings(),
so their help-panel descriptions stayed English regardless of .po
content - subclass them (_Input/_Button) following the _OptionList
pattern to make those translations real.

test_tooling/check_binding_descriptions.py verifies the list against
the installed textual after upgrades (manual, not wired into CI).
2026-06-10 16:44:20 +03:00
..
applications
default_profiles Add users to seat group when seatd is selected (#4578) 2026-06-10 16:56:17 +10:00
lib Extract binding descriptions into base.pot and translate raw widget bindings (#4584) 2026-06-10 16:44:20 +03:00
locales Extract binding descriptions into base.pot and translate raw widget bindings (#4584) 2026-06-10 16:44:20 +03:00
scripts Add Plymouth configuration setup (#4555) 2026-06-10 16:44:03 +10:00
tui Extract binding descriptions into base.pot and translate raw widget bindings (#4584) 2026-06-10 16:44:20 +03:00
__init__.py
__main__.py
examples
main.py