Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 - 2026-01-18
Added
Core Localization System
Localizationstatic facade for convenient access to the localization systemLocalizationServicepure C# implementation with DI supportILocalizationServiceinterface for testing and dependency injectionLocalizedStringserializable struct for Inspector-friendly localization referencesLocaleclass representing language/region with metadata (display name, native name, RTL support)StringTableScriptableObject for storing translations with O(1) lookup performanceLocalizationSettingsScriptableObject for project-wide configuration
Provider System
ILocalizationProviderinterface for implementing custom data providersJsonProviderfor file-based JSON storage with caching and compression supportCsvProviderfor CSV import/export with configurable delimiter and layout optionsPOProviderfor GNU Gettext PO file support with:- Standard
msgid/msgstrpairs - Context support (
msgctxt) - Plural forms (
msgid_plural,msgstr[n]) - Translator and extracted comments
- Multiline strings and escape sequences
- Standard
ProviderRegistryfor automatic provider discovery and registrationLocaleDataandTranslationEntrydata transfer objects
Smart String System
SmartStringParserwith support for:- Positional arguments (
{0},{1}) - Named arguments (
{player},{score}) - Pluralization with CLDR rules (
{0:plural:one=# item|other=# items}) - Gender agreement (
{0:male=He|female=She|other=They}) - Boolean conditionals (
{0:true=Yes|false=No}) - Number formatting (
{0:N0},{0:N2}) - Currency formatting (
{0:C}) - Date formatting (
{0:d},{0:D})
- Positional arguments (
PluralRulesimplementing CLDR plural categories for 15+ languages- Template validation and variable extraction utilities
UI Components
LocalizedTMPcomponent for TextMeshPro with automatic locale updatesLocalizedTextcomponent for legacy Unity UI TextLocalizedImagecomponent for locale-specific spritesLocalizedAudioComponentfor localized audio clips with playback controlLocalizedTextureComponentfor localized textures on RawImage
Asset Localization
AssetTableScriptableObject for localizing non-text assetsILocalizedAsset<T>interface for typed asset referencesLocalizedTextureandLocalizedAudioClipstructs
UI Toolkit Integration
LocalizedLabelelement with UXML supportLocalizedStringConverterfor UXML attribute binding
Editor Tools
- Setup Panel (Lexis > Setup)
- Initial setup wizard
- Settings validation
- Package detection status
- String Table Browser (Lexis > String Table Browser)
- Inline translation editing
- Search and filter
- Add/remove entries
- Create new string tables
- Language Switcher (Lexis > Language Switcher)
- Property drawers for
LocalizedString,LocalizedTexture,LocalizedAudioClip - CSV, JSON, and PO file importers
Validation
MissingTranslationValidatorfor finding missing translations across locales
Internal Utilities
LocaleDetectorfor system language detectionStringFormatterwith ZString integration for zero-allocation formattingIServiceFactoryandDefaultServiceFactoryfor DI support
Samples
- Basic Setup sample with minimal configuration example
- Smart Strings sample demonstrating pluralization and formatting
- UI Toolkit sample showing LocalizedLabel in UXML
Documentation
- Comprehensive README with quick start guide
- XML documentation for all public APIs with examples
- This CHANGELOG
Platform Support
- Unity 2020.3 LTS through Unity 6
- All build targets (Windows, macOS, Linux, Android, iOS, WebGL, consoles)
- All render pipelines (Built-in, URP, HDRP)
Dependencies
Unreleased
Added
RTL Support
RtlSupportutility class for RTL (Right-to-Left) text support:- Locale-based RTL detection (
IsRtlLocale) for Arabic, Hebrew, Persian, Urdu, and more - Character-level RTL detection (
IsRtlCharacter,ContainsRtlCharacters) - Text direction analysis (
DetectTextDirection) with RTL ratio calculation - Layout helpers (
FlipAnchor,FlipPivot,FlipAnchors,FlipHorizontalPosition) - Padding/margin flipping utilities (
FlipHorizontalPadding,FlipRectOffset) LocalizedTextAlignmentenum for direction-aware alignment (Start/End/Center)- Unicode directional control characters (LTR/RTL marks, embedding)
ApplyRtlToRectTransformfor automatic RectTransform mirroring
- Locale-based RTL detection (
Addressables Integration
AddressableLocalizationstatic API for async asset loadingAddressableAssetTableScriptableObject for Addressables-based asset referencesAddressableLocalizedAsset<T>generic struct for typed Addressable references- Concrete types:
AddressableLocalizedTexture,AddressableLocalizedSprite,AddressableLocalizedAudioClip,AddressableLocalizedPrefab - Runtime components:
AddressableLocalizedTextureComponentfor RawImageAddressableLocalizedSpriteComponentfor ImageAddressableLocalizedAudioComponentfor AudioSourceAddressableLocalizedPrefabComponentfor instantiating prefabs
AddressableAssetPreloaderfor preloading assets before locale switch- Editor support:
AddressableLocalizedAssetDrawerproperty drawer with dropdown key selectionAddressableAssetTableEditorcustom inspectorAddressableKeySearchWindowfor browsing available keysAddressableExtensionBridgefor String Table Browser integration
Remote Providers
RemoteProviderBaseabstract class for implementing remote data providersGoogleSheetsProviderfor syncing translations with Google Sheets:- Read/write support
- Batch operations for efficiency
- Configurable sheet and range settings
Editor File Watching
LocalizationFileWatcherfor automatic hot reload of localization files in Editor:- Watches JSON, CSV, and PO files for changes
- Automatic StringTable refresh on file modification
- Configurable watch paths and file patterns
- Enable/disable via Localization Settings
Editor Improvements
- Unified String Table Browser with Asset Table support:
- Browse and edit both StringTable and AssetTable entries
- Locale columns with inline editing
- Create new tables directly from browser
- Search field for filtering entries
- Refactored editor architecture with extracted managers:
ColumnLayoutManagerfor dynamic column layoutTableSelectionManagerfor table selection UIStringTableEditorfor string entry editingAssetTableEditorfor asset entry editingValidationManagerfor entry validationLocaleManagerfor locale column management
- Improved property drawers with dropdown selection for all localized types
- Auto-setup functionality for new projects
