- Ya
- 18 Julai 2026, 21:51 UTC
- Mwandishi
- kamo
- Ahadi ya
- 084f7f8
Catalog, Identifiers, Ingestion, Loan Sale Desk and the Pipeline table rendered hardcoded English inside a console whose other screens were fully translated. All five now read through next-intl (keys live in kamo-translation-dictionary, pushed first — kamo-internal's messages/ is gitignored and populated at build time). The three tabs that showed a literal label against a borrowed tabs.pricing key now have their own keys, so StewardScreen.label had no remaining user and is removed rather than left as dead API surface. Two strings were being assembled from fragments — the review notice interpolated a {verb} and the promotion footnote a {source}. Word order and agreement differ per language, so a translator has to own the whole sentence; each is now one complete string per case. Verified: tsc clean; every t() key the code calls resolves in en.json, including the template-built `${NS}.group.VALUE` keys in the Loan Sale Desk panel (its enum sets are all covered, and an unknown value falls back to the raw string rather than throwing).