Repository navigation
Release v0.14.0
What
Ante's lobby can now be used in Norwegian Bokmål, with English as the fallback (Closes #63).
- Language choice: in order, a saved user preference, an allowlisted
?lang=hint, the browser's languages (honoring quality values),Ante:DefaultLocale, then English.nb,nb-NOandnoall mean Bokmål; Nynorsk is not supported.Ante:SupportedLocaleslimits the choice to shipped languages. - One language end to end:
- Arc HTTP requests, including the organization-name pre-flight, carry
Accept-Language. - WebSocket and EventSource connections, which cannot set that header, use a same-origin
ante-localecookie. - The backend uses ASP.NET request localization instead of a global invariant UI culture. Serialization, parsing and identity comparisons stay invariant, and no localized text reaches events.
- Arc HTTP requests, including the organization-name pre-flight, carry
- What is translated: frontend strings; Cratis Components' own labels (stepper and dialog buttons); backend validator, legal, exchange and recovery messages (resources); Chronicle constraint messages (translated at the response boundary); document
lang/dir. - Robustness: English-only fallback when the locale policy can't be loaded or is malformed. Language switching works without a reload when browser storage is unavailable. Typed names survive re-renders.
- Not covered: host-owned legal documents and AuthProxy's pages and emails; their owners must supply Norwegian copy.
Native review of the Bokmål wording
Tracked separately (merged with English as the default; Bokmål is served only to browsers that ask for it):
Source/Ante/Locales/nb/translation.jsonSource/Ante/Resources/Messages.nb-NO.resx
Verification
- Local mirror of CI: 936 .NET and 227 frontend specs (key parity, negotiation precedence, request culture, localized validator and constraint messages, Bokmål component rendering), Release build with warnings as errors, lint and compile.
yarn buildwas not run locally (license). - Full cross-provider review workflow (Opus 5.5 and GPT-6 Astra, each finding verified by the other): seven rounds, final round passed.