Languages
Every string the menu shows has a key (ui.…, setting.<id>.name, setting.<id>.help,
setting.<id>.option.<value>, category.<id>, input.action.<name>). The kit ships an English
String Table (Content/Localization/English.asset).
Add a language #
- Duplicate
English.asset, rename it (e.g.German.asset), and set Language Code (de) and Native Name (Deutsch). - Translate the values (keep the keys and any
{0}placeholders or<b>tags). - Add the table to the Language setting (in your profile copy).
Missing keys fall back to English. The default language is the player's system language when a table matches it, otherwise English.
Pseudo-localization (testing) #
In the Editor and in development builds the Language setting also offers Pseudo: every text
gets accented letters, 40% more length and brackets ([Ñéŵ Ĝáɱé~~~~]). Use it to find text that
is cut off or not translated. Menu texts shrink to fit long translations; an automated test checks
every screen at 4:3, 16:10, 16:9, 21:9 and 32:9, at 75%, 100% and 150% menu size, in every theme,
with pseudo-localization on.
Fonts for other scripts (Chinese, Japanese, Korean, …) #
The included Inter font covers Latin scripts (Western European languages). For Chinese, Japanese, Korean, Cyrillic, Greek, Arabic or other scripts, create a TextMesh Pro font asset from a font that covers them (for example Noto Sans CJK, SIL OFL) and add it to the Fallback Font Assets list of the theme's font asset (or set it as the theme's font). Dynamic atlas population keeps the build small. Right-to-left languages need extra work in TextMesh Pro and are not handled by the kit.
Unity Localization package (optional) #
When com.unity.localization is installed, the menu also asks a Unity Localization string table
named SettingsMenuKit (same keys), and follows the package's selected locale. The bridge is
compiled only with the package (1.4 or newer). A text missing from the selected locale's table comes
from the English Unity table, then the kit's English table, then the text in the prefab.
Change the table name with UnityLocalizationStringSource.TableName, or stop following the
selected locale with UnityLocalizationStringSource.FollowSelectedLocale = false.
Credits and loading tips come from your own text files; translate them by assigning a different file per language from your game code.