What problem does it solve?
Gum's localization system centralizes and clarifies how UI text is translated and applied across both the Gum authoring tool and runtime, preventing silent failures, incorrect translations, and inconsistent behavior between design-time and runtime text assignment.
Core Features & Use Cases
- Architecture & API: Explains the nullable static LocalizationService entry point, the ILocalizationService contract, and the default LocalizationService behavior including the "(loc)" missing-key marker.
- Loading & Formats: Documents CSV and RESX loading semantics, multi-file and satellite RESX handling, collision warning policies, and the internal dictionary structure used for translations.
- Runtime Semantics & Patterns: Describes translation-on-assignment versus stored strings, Text vs TextNoTranslate behavior, Forms control patterns, data-driven control exceptions, file-watching reload triggers, and UI integration for language selection.
- Gotchas & Tests: Lists important pitfalls (BBCode interaction, CurrentLanguage indexing, exclusion rules, ordering of satellites) and points to unit tests and key source files for verification.
Quick Start
Load your RESX or CSV translation files into the project's LocalizationFiles list, select a language in the project properties, then assign text via the Text property to apply translations automatically.