# Интернационализация
Вы можете создавать многоязычные плагины, интерфейс которых меняется в зависимости от языка интерфейса пользователя.
Для это при задании элементов плагина используется специальная директива { "@t": "someKey" }
, где someKey
- это ключ строки перевода. При активации плагина все директивы подобного рода заменяются на соответвующее языку пользователя значение из блока locale
.
Сначала проверяется блок locale
в текущей сущности плагина. Если в этом объекте в текущем языке пользователя есть соответвующий ключ, то вместо { "@t": "someKey" }
подставляется найденное значение. Если ключа нет, то перевод ищется на уровне выше - в основном файле плагина (index.json
).
Например:
{
"type": "destination",
"name": "my-destination",
"title": { "@t": "title" },
"icon": null,
"content": {
"additionalProps": [
{
"name": "myPrice",
"title": { "@t": "priceField" },
"type": "integer"
}
]
},
"locale": {
"en": {
"title": "My microstock",
"priceField": "Price"
},
"ru": {
"title": "Мой микросток",
"priceField": "Цена"
}
}
}
После обработки, если текущий язык русский, превращается в
{
"type": "destination",
"name": "my-destination",
"title": "Мой микросток",
"icon": null,
"content": {
"additionalProps": [
{
"name": "myPrice",
"title": "Цена",
"type": "integer"
}
]
},
"locale": {
// ...
}
}
При смене языка плагины сначала деактивируются, а потом активируются снова с новым выбранным языком интерфейса