Internationalization requirements
Mandatory locales for specific markets live on the Regions pages.
Detect language via the SDK
Section titled “Detect language via the SDK”- MUST use
FRVR.locale.get()to get the player’s locale. - MUST NOT read
navigator.language/navigator.languages. They’re unreliable in channel webviews.
English fallback
Section titled “English fallback”- MUST ship
en(oren-US) strings for every UI string. Unsupported locales fall back to English. Never to a hard‑coded other language; never to empty strings.
Untranslated content
Section titled “Untranslated content”- MUST NOT display untranslated copy or raw translation keys (
menu.play, etc.).
Text rendering
Section titled “Text rendering”- MUST use a font that covers every script you ship.
- MUST support text expansion (German, French, Russian commonly run 30–50% longer than English). Don’t pin button widths.
- SHOULD support RTL (Arabic, Hebrew) where shipped. Mirror UI direction, not just alignment.
Numbers, dates, currency
Section titled “Numbers, dates, currency”- MUST use
Intl.NumberFormat/Intl.DateTimeFormatfor any user‑facing values. - MUST NOT hand‑roll currency conversion or invent symbols. Use
FRVR.iapcatalog values.
Cultural appropriateness
Section titled “Cultural appropriateness”- MUST NOT use imagery, copy, or audio restricted in any market the channel distributes to (national flags, religious symbols, political content).