How avlorayne/localization works
Localization for Unity turns designer-maintained CSV/XLSX sheets into validated Unity language-data assets, then provides runtime template lookup with language fallback. The graph follows the documented conversion-to-lookup workflow and includes editor configuration, export, inspector/TMP tooling, and Addressables loading. The excerpts do not include the conversion baker, registrar, runtime system, or template resolver implementations, so their documented roles are shown without inferring finer internal call sequences.
Main entry points: LocalizationSystem.cs Localization system · LanguageConfigBaker.cs Config baker · LocalizationSourceParser.cs Source parser · LanguageDataLoader.cs Language data loader
Components 24
Editor authoring
- Language settings
Editor/Core/LanguageProjectSettings.cs - Asset inspector
Editor/Inspector/LanguageDataSOEditor.cs - TMP key picker
Editor/TMPExtra/LocalizedTextMeshProTool.cs
Source conversion
- CSV/XLSX sheets
- Config baker
Editor/Core/LanguageConfigBaker.cs - Source parser
Editor/Source/LocalizationSourceParser.cs - CSV parser
Editor/Source/CsvParser.cs - XLSX parser
Editor/Source/XlsxLocalizationParser.cs - Source schema
Editor/Source/LocalizationSourceSchema.cs - Source exporter
Editor/Source/LocalizationSourceExporter.cs - XLSX exporter
Editor/Source/XlsxLocalizationExporter.cs - CSV converter
Editor/Core/LocalizationCSVConverter.cs
Runtime localization
- Language data asset
Runtime/Data/LanguageDataSO.cs - Runtime config
Runtime/System/LanguageConfigSO.cs - Localization system
Runtime/System/LocalizationSystem.cs - Language data loader
Runtime/Data/LanguageDataLoader.cs - Namespace lookup
Runtime/System/LocalizationLookup.cs - Localized entries
Runtime/Data/LocalizationData.cs - Template parser
Runtime/Utility/LocalizationTemplateParser.cs - Template resolver
Runtime/Utility/LocalizationTemplateResolver.cs
Unity integrations
- Addressables registrar
Editor/Core/LanguageDataSOAddressableRegistrar.cs
Other components
- Designer
- Addressables
- Programmer
Connections 28
- Designer → CSV/XLSX sheets: edits
- CSV/XLSX sheets → Config baker: converts
- Config baker → Source parser: imports
- Source parser → CSV parser: dispatches
- Source parser → XLSX parser: dispatches
- CSV parser → Source schema: normalizes entries
- XLSX parser → Source schema: normalizes entries
- Config baker → Language data asset: generates
- Config baker → Addressables registrar: registers assets
- Addressables registrar → Addressables: registers
- Language settings → Runtime config: bakes config
- Programmer → Localization system: requests text
- Localization system → Language data loader: loads language data
- Language data loader → Addressables: loads assets
- Language data loader → Language data asset: returns asset
- Localization system → Namespace lookup: looks up text
- Namespace lookup → Language data loader: loads missing namespace
- Namespace lookup → Localized entries: reads localized values
- Localization system → Template parser: parses templates
- Localization system → Template resolver: resolves templates
- Template resolver → Namespace lookup: looks up placeholders
- Asset inspector → Language data asset: edits entries
- Asset inspector → Source parser: imports source
- TMP key picker → Language data asset: offers localization keys
- Source exporter → CSV converter: exports CSV
- Source exporter → XLSX exporter: exports XLSX
- CSV converter → CSV/XLSX sheets: writes CSV
- XLSX exporter → CSV/XLSX sheets: writes XLSX