Localization: required 12 languages
Every released VORIVOX game must support the same 12 product languages: ru, en, zh-Hans, es, ar, hi, pt, fr, de, ja, kk, uz. This is a game requirement, not only a Console feature.
What must be translated
Menus, rules, hints, results, errors, mode names, onboarding and subtitles. Do not bake text into images. Arabic requires RTL-aware layout and separate visual QA.
Language selection
Launcher supplies manifest.locale. Before ready(), normalize it to one of the 12 keys and load a local dictionary. Region tags such as ru-RU and en-US map to ru/en; zh-Hans remains distinct.
Fallback
Fallback is not a substitute for translation. It exists only for an unknown or damaged locale. Internal diagnostics may fall back to English with a warning, but release QA must pass all 12 locales.
Release check
Compare dictionary keys automatically, then visually test long labels, Arabic RTL, Chinese, Hindi and line wrapping on the projector. Fonts must contain all required glyphs and ship with the game.
Code example
Integration excerpt: game-specific variables belong to the application. Playground contains the runnable reference.
const SUPPORTED = ['ru','en','zh-Hans','es','ar','hi','pt','fr','de','ja','kk','uz'];
function gameLocale(value='') {
const raw = value.trim();
if (/^zh(-|$)/i.test(raw)) return 'zh-Hans';
const base = raw.split('-')[0].toLowerCase();
return SUPPORTED.includes(base) ? base : 'en';
}
const locale = gameLocale(sdk.manifest.locale);
const dict = await fetch(`./i18n/${locale}.json`).then(r => r.json());