archinstall/archinstall
Softer dccd0c8ccf
Add translation CI validation (#4519)
* Fix broken localization: tr(f-string) never matches translation catalog

tr(f'Invalid configuration: {error}') evaluates the f-string before
tr() runs, so xgettext extracts the literal placeholder as the msgid
while runtime passes the formatted string - the two never match.
Switch to tr('...{}').format(...) and update msgid in base.pot.

* Add CI validation for translations and pot_tools dev utility

Add translation-check workflow with two jobs:
- validate-po: msgfmt --check on changed .po files, .mo sync warning,
  tr(f-string) anti-pattern grep on changed .py files
- validate-pot: verify all tr() strings exist in base.pot when .py
  files change

Workflow only triggers on .py/.po/.pot file changes.

Add scripts/pot_tools.py developer utility (stats, list, add_missing)
for managing base.pot.

* Fix code style: use tabs and reformat xgettext arguments

Align check_pot_freshness.py and pot_tools.py with project
indentation (tabs) and ruff format requirements.

Sorry :-)

* Replace custom PO parser with msgcmp, drop pot_tools.py

Address review feedback: use standard gettext msgcmp instead of
hand-rolled parser for base.pot freshness check. Remove pot_tools.py
that duplicated locales_generator.sh functionality.

* Move translation checks into locales_generator.sh, simplify CI workflow

Use msgcmp instead of diff for base.pot validation to avoid failing on
legacy stale entries - the same cascading breakage that killed the
original workflow (disabled 2023, removed in #4483).

* Fix broken .po files: duplicate msgid in Hindi, missing format args in Finnish
2026-05-18 20:10:56 +10:00
..
applications Enable power management services after package installation (#4440) 2026-04-18 12:04:14 +10:00
default_profiles Replace terminal and file manager in Budgie profile (#4533) 2026-05-13 08:21:15 +10:00
lib Add translation CI validation (#4519) 2026-05-18 20:10:56 +10:00
locales Add translation CI validation (#4519) 2026-05-18 20:10:56 +10:00
scripts Keep standalone initramfs for grub-btrfs when UKI is enabled (#4513) 2026-05-06 14:26:59 +10:00
tui Enhance config types and summary (#4532) 2026-05-10 22:35:53 +02:00
__init__.py Convert imports to absolute imports (#4196) 2026-02-26 20:17:48 +11:00
__main__.py Replace sys.exit calls with return values (#4156) 2026-01-22 13:58:40 +11:00
examples Adding symlink to examples. 2020-07-08 12:34:22 +00:00
main.py Enhance log sharing capability (#4526) 2026-05-15 21:38:17 +10:00