Локализация: обязательные 12 языков
Каждая выпускаемая игра VORIVOX должна поддерживать те же 12 языков, что и продукт: ru, en, zh-Hans, es, ar, hi, pt, fr, de, ja, kk, uz.
Как выбирается язык
Launcher передаёт язык сеанса в sdk.Manifest.Locale. Выберите словарь до ReadyAsync(). Региональные формы ru-RU и en-US сводите к базовым ключам; китайский упрощённый храните как zh-Hans.
static readonly string[] Supported = {
"ru","en","zh-Hans","es","ar","hi",
"pt","fr","de","ja","kk","uz"
};
static string ResolveLocale(string value)
{
if (!string.IsNullOrWhiteSpace(value) &&
value.StartsWith("zh", StringComparison.OrdinalIgnoreCase))
return "zh-Hans";
string baseCode = (value ?? "").Split('-')[0].ToLowerInvariant();
return Array.IndexOf(Supported, baseCode) >= 0 ? baseCode : "en";
}
string language = ResolveLocale(sdk.Manifest.Locale);
localization.Select(language);
Что переводим
- меню, правила и обучение;
- подсказки и статусы сеанса;
- результаты, названия режимов и ошибки;
- субтитры и текстовые реплики.
Не встраивайте текст в изображения. Шрифты должны содержать необходимые глифы и поставляться вместе с игрой.
Арабский и сложные шрифты
Для ar проверьте RTL-компоновку отдельно. Для zh-Hans, hi, ja, kk и uz проверьте реальные глифы, переносы и размеры UI на проекторе.
Fallback
Fallback на английский — аварийная защита для неизвестной локали, а не способ считать перевод выполненным. Перед выпуском QA должен пройти все 12 языков.
Проверка словарей
Набор ключей должен совпадать во всех локалях. Желательно автоматизировать эту проверку в CI и отдельно открыть каждую локаль в игре.