Локализация
Launcher передаёт язык сеанса в Manifest.Locale. Игра должна выбрать ближайшую поддерживаемую локаль до отправки game.ready.
Выбор языка
string locale = sdk.Manifest.Locale; // ru-RU, en-US, ...
string language = locale.StartsWith("ru", StringComparison.OrdinalIgnoreCase)
? "ru" : "en";
localization.Select(language);
Правила интерфейса
- не встраивайте текст в изображения;
- оставляйте запас 30–40% по ширине;
- форматируйте числа и даты через
CultureInfo; - субтитры не должны закрывать область стрельбы;
- системные ошибки должны быть понятны оператору без технического жаргона.
Fallback
Поддерживайте минимум RU и EN. Для неизвестной локали выбирайте английский и записывайте предупреждение через LogAsync("warning", ...), не блокируя запуск.
Озвучка
Разделяйте банки или Addressables по языкам, но держите нужный пакет локально. Интернет во время игрового сеанса не требуется и не должен быть частью игрового потока.