archinstall/test_tooling
Softer 7fd4b4382b
Extract TUI binding descriptions into base.pot and translate raw widget bindings (#4587)
* 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).

* Document key binding descriptions in the locales README
2026-07-23 13:02:22 +10:00
..
mkarchiso mkosi for test image builds (#4539) 2026-05-23 13:49:54 +02:00
mkosi mkosi for test image builds (#4539) 2026-05-23 13:49:54 +02:00
qemu Enable more mypy and Pylint checks for test_tooling/ (#4620) 2026-07-12 21:21:18 +10:00
check_binding_descriptions.py Extract TUI binding descriptions into base.pot and translate raw widget bindings (#4587) 2026-07-23 13:02:22 +10:00