Files
OmniRoute/tests/unit
Markus Hartung 0ff7d88869 fix(i18n): restore Google Translate codes in the locale table; guard the id←in alias in config-reading tests
Regenerating the "Supported Locales" table from config/i18n.json filled the
4th column with the locale code, overwriting four verified-correct values.
Restored from `googleTl` in scripts/i18n/generate-multilang.mjs: `he` → `iw`,
`phi` → `tl`, `pt-BR` → `pt`, `uk-UA` → `uk`. The other 38 rows were checked
against the same source and already agreed; the header text, the column
widths and every other cell are untouched, so `insertI18nGuideRow`'s anchor
keeps working (add-locale --dry-run exits 0 and still inserts `el` in place).

The `id` → `in` alias is the sole reason retiring a shipped locale is safe,
but unlike its three siblings it had no config-reading regression guard:

- tests/unit/i18n-config.test.ts pins LOCALE_ALIASES["id"] alongside uk-UA,
  phi and zh-TW.
- tests/unit/cli-i18n-catalog.test.ts covers OMNIROUTE_LANG=in → id in the
  existing config-alias test.
- tests/unit/i18n-resolve-requested-locale.test.ts adds one case built on the
  real LOCALES/LOCALE_ALIASES from src/i18n/config.ts (the existing fixture
  tests stay), asserting a saved NEXT_LOCALE=in cookie still lands on `id`.

All three fail when the alias is removed from config/i18n.json (verified).

Also: the "docs/i18n/README.md Is Auto-Generated" note no longer claims the
index is regenerated by `generate-multilang.mjs docs` — it is maintained by
`npm run i18n:add-locale` (row insertion) and by hand otherwise.
2026-09-02 11:09:58 -03:00
..
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-08-26 14:25:01 -03:00
2026-06-29 08:40:06 -03:00