Deeman 9957b27a77 refactor(i18n): extract translations to JSON locale files
Move 941 UI strings per language from inline Python dicts to
locales/en.json and locales/de.json. Rewrite i18n.py from 2062
lines to 140 lines (JSON loader + inline calc item names).

- Create src/padelnomics/locales/en.json (941 keys)
- Create src/padelnomics/locales/de.json (941 keys)
- Add load-time key parity assertion (EN/DE must match)
- Keep _CALC_ITEM_NAMES inline (36 keys, calc-only namespace)
- Fix stale docstring referencing non-existent function
- Add tests/test_i18n_parity.py: key parity, non-empty values,
  no untranslated copy-paste (with allowlist for proper nouns)

All 1013 existing tests pass + 5 new parity tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 23:21:59 +01:00
2026-02-11 22:52:06 +01:00
2026-02-19 19:16:23 +01:00
Description
No description provided
32 MiB
Languages
HTML 46.4%
Python 43.3%
JavaScript 4.6%
Jinja 2.3%
CSS 2.2%
Other 1.2%