Revision Difference
localization#561979
<cat>UI.Intro</cat>
<title>Localization</title>
# 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`.
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`
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..
```csharp
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 |