Локализация
Переводы хранятся в файле lang.js
в подобной структуре:
exports.lang = {
"RU": {
"1": "Привет, Мир!",
},
"EN": {
"1": "Hello, World!",
},
"Индекс_Языка": {
"Индекс_Фразы": "Перевод_Фразы_На_Этот_Язык",
},
};
Язык клиента (подключившегося пользователя к серверу) автоматически определяется библиотекой KotikiServer.
KotikiServer автоматически отображает переводы в тексте объектов с компонентом TextMeshPro(+- UGUI):
Если подключился игрок с установленным у себя в настройках русским языком (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);
}