31 lines
1.6 KiB
Markdown
31 lines
1.6 KiB
Markdown
# I18N-System
|
|
The TeaSpeak web and native client are supporting a farly rich amount of different languages.
|
|
This is possible due to the integrated translation system.
|
|
The goal of this paper is to give a brief overview of the functionality.
|
|
|
|
## 1. Structure of the system
|
|
TeaSpeaks translation system is a map based system.
|
|
This means that in general every visible text will be looked up
|
|
and if there is a mapped value it will uses this instead of the original text.
|
|
For example, if we have tree phrases and the following mapping:
|
|
Mapping:
|
|
`Hello, World` => `See you soon`
|
|
`Foo` => `Bar`
|
|
Messages
|
|
`Hello, World` becomes: `See you soon`
|
|
`Hello world` has no mapping so: `Hello world`
|
|
`Foo` becomes => `Bar`
|
|
`Foo Bar` has no mapping so: `Foo Bar`
|
|
|
|
The files which contain these mappings are ending with `.translation` (Structure described in [1.1]()).
|
|
This means that for each language or dialect you want to adjust, you require a new translation file.
|
|
To actually use a translation file you'll need to register the file in a so called "translation repository".
|
|
A translation repository could provide multiple translation files or even multiple versions of the same file.
|
|
The structure of a "translation repository" is described in [1.2]().
|
|
|
|
The web an the native client will query all registered translation repositories for their translation files.
|
|
If the client then selects one of the queried translations, the given mapping of the file will be used to map all visible texts.
|
|
|
|
### 1.1 The `.translation` file
|
|
The `.translation` file contain in `json` format the all mapping information.
|