Files
chanora/docs/i18n/localization-architecture.md
T

2.2 KiB

Chanora Localization Architecture

Document status: DV meeting baseline candidate
Date: 2026-05-29

1. Implementation Source

Localization is enabled through Flutter generation in apps/chanora_flutter/pubspec.yaml and generated files under apps/chanora_flutter/lib/l10n/generated/.

2. Architecture Rules

Rule Requirement
Product strings User-visible product-owned strings should be localizable
Server content Server names, channel names, nicknames, and messages are displayed as content, not translated
Unicode UTF-8/Unicode content must be preserved through protocol, bridge, state, UI, logs, and diagnostics unless intentionally redacted
Fallback Missing localization keys must have deterministic fallback behavior
Diagnostics Machine-readable diagnostic keys remain language-neutral

3. Current Locale Baseline

English and Simplified Chinese generated localization files are present in the current Flutter app tree.

4. Ownership and Coverage Criteria

Criterion Required result
Product-owned strings New user-visible product strings are added to localization resources or explicitly justified as non-product content
Server-owned content Server names, channel names, nicknames, and chat messages pass through untranslated
Fallback behavior Missing-key behavior is deterministic and covered by test or generated-localization behavior review
Unicode preservation Multilingual content is preserved across protocol, bridge, state, UI, logs, and diagnostics except where redaction intentionally removes content
Diagnostic keys Machine-readable diagnostic keys remain stable and language-neutral

5. Evidence Required Before Release

Evidence Purpose
Localization generation check Confirms generated bindings are current
UI smoke in supported locales Confirms critical screens render in English and Simplified Chinese
Unicode content test or demo Confirms server-provided multilingual content is preserved

6. DV Conclusion

Localization architecture is documented and reviewable. Additional locale expansion remains outside current release scope.