feat(api): i18n foundation (fluent) + FR/EN key-parity CI gate #20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/i18n-foundation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Establishes the internationalisation mechanism + the obligation's CI gate (FR-I18N-*).
Changes
locales/{fr,en}.ftl; French default.i18nmodule:Lang,lang_of(headers)(cookielang→Accept-Language→ fr),t(lang,key).page_lang()renders shell/nav per locale;page()defaults French so existing call sites are unchanged (incremental string conversion).fr_en_key_paritytest asserts both.ftldeclare identical keys (FR-I18N-01/05) — runs incargo test.Verification
just qagreen (incl. the parity test). Live: FR default;lang=encookie switches nav + landing to English (lang="en", "My trips", "Import your GEDCOM").Remaining screens convert incrementally behind the same gate. Traces: FR-I18N-01/02/04/05 · functional-spec 09.
Establishes the internationalisation mechanism + the obligation's CI gate (FR-I18N-*): - fluent-templates over locales/{fr,en}.ftl; French default. i18n module with Lang, lang_of(headers) (cookie `lang` → Accept-Language → fr), t(lang,key). - page_lang() renders the shell/nav per locale; page() defaults French so the many existing call sites are unchanged (incremental string conversion). - landing localized end-to-end as the first converted screen. - CI gate: fr_en_key_parity test asserts both .ftl declare identical keys (FR-I18N-01/05) — runs in `cargo test`. Verified live: FR default; `lang=en` cookie switches nav + landing to English. just qa green. Remaining screens convert incrementally behind the same gate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>