S&box Wiki

Localization

What Is Localization

Instead of doing label.Text = "Hello World", you do label.Text = "#helloworld";. This way you can use the localization system to change #helloworld into こんにちは世界 if they have their language set to Japanese.

Tokens

When doing UI stuff if you set a value to a string starting with # - it'll become a token, which means it'll look for its real value in the localization system.

This works both when creating Panels using code and using templates.

Definitions

To create your definitions create a folder in the root of your addon called .localization.

Then inside that create a folder for the language. en is English. Then create a Json file inside that, which will hold your tokens.

Example

Filename: .localization\en\sandbox.json

{ "spawnmenu.props" : "models", "spawnmenu.entities" : "entities", "spawnmenu.cloudmodels": "asset.party", "spawnmenu.tools": "tools", "spawnmenu.utility": "utility" }

Then our code can do something like this..

Add.Button( "#spawnmenu.utility" );

Languages

You can currently use the following languages for localization:

English Name API language code
Arabic ar
Bulgarian bg
Simplified Chinese zh-cn
Traditional Chinese zh-tw
Czech cs
Danish da
Dutch nl
English en
Finnish fi
French fr
German de
Greek el
Hungarian hu
Italian it
Japanese ja
Korean ko
Norwegian no
Pirate en-pt
Polish pl
Portuguese pt
Portuguese-Brazil pt-br
Romanian ro
Russian ru
Spanish-Spain es
Spanish-Latin America es-419
Swedish sv
Thai th
Turkish tr
Ukrainian uk
Vietnamese vn