Localization
Localization возвращает перевод для текущего языка игры. API доступен только в клиентской Lua-части; в Reflex server.lua глобальный объект равен nil.
GetTranslation() только возвращает строку и ничего не выводит автоматически. Передайте результат в UI, ImGui, NotificationController или другой API отображения.
Откуда берётся строка
Заголовок раздела «Откуда берётся строка»Система локализации сначала ищет ключ среди строк модуля и игровых терминов для выбранного языка. Если перевод модуля пуст, используется английская колонка; если ключ нигде не найден, API возвращает сам ключ. Результат — обычная строка, которую затем обрабатывает вызвавший её UI или другой API.
localization.csv
Заголовок раздела «localization.csv»Файл лежит в корне модуля и использует точку с запятой как разделитель:
Keys;English (United States);RussianPanelTitle;Status panel;Панель состоянияFallbackOnly;English fallback;Первая колонка содержит ключи, остальные — названия языков и переводы. Кириллица в UTF-8 загружается корректно.
GetTranslation
Заголовок раздела «GetTranslation»Localization:GetTranslation(term: string): stringВозвращает строку текущего языка:
local title = Localization:GetTranslation("PanelTitle")Для примера выше результатом будет Status panel на английском и Панель состояния на русском.
Fallback на английский
Заголовок раздела «Fallback на английский»Если ячейка текущего языка пуста, возвращается значение из English (United States):
local text = Localization:GetTranslation("FallbackOnly")-- На русском: "English fallback"Поэтому английскую колонку следует заполнять для каждого ключа.
Отсутствующий ключ
Заголовок раздела «Отсутствующий ключ»Если ключ не найден, метод возвращает сам аргумент:
local text = Localization:GetTranslation("UnknownTerm")-- "UnknownTerm"Это позволяет безопасно показывать читаемый ключ, но опечатка не создаёт Lua-ошибку.
Игровые переводы
Заголовок раздела «Игровые переводы»Метод ищет не только строки модуля, но и глобальные термины игры. На русском языке подтверждены, например:
| Ключ | Результат |
|---|---|
Play |
Играть |
Settings |
Настройки |
Back |
Назад |
Cancel |
Отмена |
Buy |
Купить |
Close |
Закрыть |
local cancelText = Localization:GetTranslation("Cancel")Практический шаблон
Заголовок раздела «Практический шаблон»Получайте пользовательские строки при построении или обновлении интерфейса:
local Text = { Title = Localization:GetTranslation("PanelTitle"), Cancel = Localization:GetTranslation("Cancel")}Если язык может изменяться без перезапуска модуля, получите переводы повторно при обновлении интерфейса, а не храните их навсегда.
Частые ошибки
Заголовок раздела «Частые ошибки»- запятая вместо
;вlocalization.csv; - отсутствующая колонка
English (United States)для fallback; - ожидание
nilдля неизвестного ключа — фактически возвращается сам ключ; - вызов
Localizationизserver.lua.