LocaKit: Offline C# Localization for Unity


Fully offline, C#-first localization for Unity 6. Compile-time key constants catch typos at build, CSV import/export, plurals and RTL, optional TextMeshPro. No cloud, no Google.


by Tunnel Vision Studio


Price History +

Localization that stays in your project — and out of your way.


LocaKit is a C#-first localization toolkit for Unity 6. Your translations live in a simple ScriptableObject asset and resolve through a single line of code — Loca.Get(LocaKeys.Menu_Play). No accounts, no cloud sync, no Google Sheets pipeline, no runtime downloads. What you ship is what you tested.


Catch translation typos at compile time, not in a player review.

LocaKit generates a constant for every key, so your code references LocaKeys.Menu_Play instead of a hand-typed "Menu/Play". Rename or delete a key and the stale reference becomes a compile error you fix in seconds — instead of a blank label a player finds for you.


Drop it in and call it — no setup ceremony.

There's no singleton to place in a scene, no prefab to wire, no initialization step to forget. Assign your table, set a language, and start resolving keys. Add a LocalizedText component to any uGUI Text and it updates itself the moment the language changes.


Translators keep their spreadsheets.

Export your table to CSV, hand it to a translator, and import it back — round-trips are lossless, with proper RFC 4180 quoting for commas, quotes, and line breaks. UTF-8 throughout.


Real-world language details, built in.

Count-aware plural selection with sensible built-in rules for English, Italian, Spanish, German, French, Japanese, and Chinese, backed by the full CLDR category vocabulary (zero/one/two/few/many/other) and a hook to register your own rules. Right-to-left languages are recognized out of the box and can mirror UI alignment automatically.


TextMeshPro when you want it, never forced.

The core carries zero TMP dependency. Flip one scripting define to enable the optional TextMeshPro binding; leave it off and your project stays lean.


Lightweight and readable.

A handful of files in a single runtime assembly that references only uGUI. Render-pipeline agnostic (Built-in / URP / HDRP). Full C# source included, with EditMode and PlayMode tests.


What's inside

- Loca runtime facade: Get, GetPlural, SetLanguage, OnLanguageChanged

- LocaTable ScriptableObject source with a custom inspector

- Compile-time key-constant generator

- CSV import / export

- LocalizedText (uGUI) and optional LocalizedTMPText (TextMeshPro) components

- Plural rules and right-to-left helpers

- Sample scene and unit tests


Requirements

- Unity 6 (6000.3 or newer)

- uGUI (com.unity.ugui); TextMeshPro only if you enable the optional binding


No cloud. No Google. No network calls. Just localization that compiles.