# Интернационализация

Вы можете создавать многоязычные плагины, интерфейс которых меняется в зависимости от языка интерфейса пользователя.

Для это при задании элементов плагина используется специальная директива { "@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": {
        // ...                     
    }                                          
}

При смене языка плагины сначала деактивируются, а потом активируются снова с новым выбранным языком интерфейса