Перейти к основному содержимому

Локализация

Переводы хранятся в файле lang.js в подобной структуре:

exports.lang = {
"RU": {
"1": "Привет, Мир!",
},
"EN": {
"1": "Hello, World!",
},
"Индекс_Языка": {
"Индекс_Фразы": "Перевод_Фразы_На_Этот_Язык",
},
};

Язык клиента (подключившегося пользователя к серверу) автоматически определяется библиотекой KotikiServer.

Автозамена плейсхолдеров

KotikiServer автоматически отображает переводы в тексте объектов с компонентом TextMeshPro(+- UGUI):

alt text

Если подключился игрок с установленным у себя в настройках русским языком (RU), при идентичном упомянутому lang.js он увидит вместо Test {1} test {1} teeest {1} следующее значение:

Test Привет, Мир! test Привет, Мир! teeest Привет, Мир!.

Если у игрока выставлен английский язык (EN), он увидит следующее:

Test Hello, World! test Hello, World! teeest Hello, World!.

Таким образом, сервер заменит все {индекс} плейсхолдеры на соответствующие варианты переводов для игроков в зависимости от установленного у них языка.

Поддерживаемые на данный момент языки:

  • EN - Английский язык
  • RU - Русский язык

Для использования переводов в скрипте своего режима (например, чтобы отобразить какое-нибудь сообщение), чтобы получить нужный перевод, используйте метод:

API.getLang(pRef, index)

  • pRef (object) - референс на объект игрока.
  • index (string) - индекс фразы для получения перевода.

Пример получения фразы "Привет, Мир!" для игрока с RU языком, если lang.js такой же, как в начале этой страницы:

let playerID = 1;
let pRef = API.players(playerID);

if (pRef !== undefined){

// Получаем фразу с индексом "1" для игрока pRef
let translated_phrase = API.getLang(pRef, 1);

// Выводим полученную фразу
console.log(translated_phrase);
}