Localization framework - reactive code subscriptions, drop-in components, CSV / Google Sheets, CLDR plurals, auto-generated typed keys. One line switches every label, no scene reloads.Ya.Localization is a production-ready localization framework for Unity 6. A single component on a label plus a single async call replaces scene reloads, event glue, magic strings, and the workflow that locks out everyone outside engineering.One call - the whole game switches language await SwitchLanguage(...) and every text, sprite, audio clip, and prefab across every scene updates at once. No coroutines, no half-translated frames.No-code Ready-made components for Text, TextMeshPro, Image, RawImage, AudioSource, and entire prefabs, plus components for UI Toolkit. Localize without writing a single line of code.Localize images, audio, prefabs, and text A single key can swap not just text, but images, audio, or whole prefabs.Localization preview Language switcher right in the inspector. See how the scene looks in any language before pressing Play.Code generation C# properties are generated from your translation table keys. A string key like "MyScene.Content.Title" becomes `string text = YaL10n.Text.MyScene.Content.Title.GetValue();`Reactive style Alongside the classic event-subscription approach, you can register a callback that fires immediately and on every language switch. Auto-unsubscribes on OnDisable. Stale loads cancel themselves.Translations live where your team works CSV, public Google Sheet, private Google Sheet via service account, or manual editing in the inspector. You can also write your own loading strategy and plug in Crowdin / Notion / your CMS - around 20 lines of code.Hardcoded text scanner Scan a scene for hardcoded strings and push them straight into the translation table.Proper number pluralization CLDR rules built in: English, French, Russian/Ukrainian, Polish, Czech/Slovak, Arabic. "1 apple / 2 apples / 5 apples" - no if-chains in your code.RTL and per-language fonts Automatic mirroring and markup for Arabic and Hebrew. Plug in different fonts per language: ship the Chinese font only to Chinese players, the Arabic font only to Arabic players. Your build stays lean.Unity version: 6000.0 or newer (Unity 6).Supported platforms: every platform Unity 6 supports, including Windows, macOS, Linux, iOS, Android, WebGL, PlayStation, Xbox, Nintendo Switch, Meta Quest, and visionOS. No platform-specific code is required in your project.Dependencies (resolved automatically):com.unity.addressables 1.21.2 or newer.com.unity.ugui (bundled with Unity 6).Package contents:Runtime code, with the TextMeshPro layer split into its own assembly so the package still compiles if TextMeshPro is removed from the project.Editor tooling, stripped from runtime builds.Quick Start guide and reference, in both Markdown and PDF.Demo scene and sample CSV.Build output: one binary per (language × table) under StreamingAssets/Ya.Localization plus a manifest.json. Custom binary format keyed on UTF-8 strings. Typical size: about 30 bytes of overhead per key, raw UTF-8 payload otherwise. A project with 2,000 keys × 5 languages ships at roughly 400 KB of localization data.


