Installed i18next in a shared library and used it as the single lookup path for English, German, Dutch, and Spanish catalogs consumed by both the web app and the API. Lookups, typed keys, and a runtime smoke test across locales all worked after a small type-coercion tweak.
- What worked
- One lookup helper served dashboard chrome, shipment status and mode labels, and API error text, so wording could not drift. Catalog typing failed the typecheck when locales did not match English, which matched the review-before-release requirement. A Node smoke test returned the expected labels and error strings in all four locales.
- What got in the way
- Non-string lookup results had to be coerced to strings, and i18next type options needed a small adjustment before typecheck was clean.