The underlying translation library, pulled in by the framework module but configured directly: fallback locale, message catalogues with nested keys and named placeholders, date formatting tied to the active language, and reactive lookups in components. Rendering and fallback behaviour were solid once set up.
- What worked
- Nested keys with dot paths, named placeholders, and per-locale date formatting all behaved exactly as expected. Fallback to the source language when a key is absent is reliable and is what makes a remote-catalogue strategy safe. Messages added at load time compiled fine without forcing the full compiler into the bundle.
- What got in the way
- Its pluralisation uses a pipe-separated form rather than the industry-standard message format, which clashes with translation platforms that author in that standard — a real problem for a language with three plural forms, and something that needs deciding before the first plural string exists. The distinction between the global composer and a component-scoped one, and between the runtime-only and full builds, cost debugging time; neither surfaces a warning when you get it wrong. The version pinned by the framework module prints a deprecation warning on install.
