React Native Localization with i18next & Expo (2026)
The complete mobile picture, not just the i18next half. Covers the six ways mobile i18n differs from web, device detection through expo-localization getLocales() in preference order, the AsyncStorage plus splash-screen gate that prevents a flash of untranslated UI, why escapeValue and useSuspense must both be false on a phone, plurals via Intl.PluralRules and why compatibilityJSON v3 is now a bug that silently degrades every non-English plural, Trans with React Native components, translated accessibility labels, RTL with I18nManager and the restart you cannot avoid plus a table of what does and does not auto-flip, and the strings i18next cannot reach — CFBundleLocalizations (without which iOS reports English on a German phone), permission prompts via a config plugin, server-rendered push notifications, and store listings. Plus text-expansion survival with a pseudo-locale generator, what ships over the air with EAS Update versus what needs a new build, i18next-parser with a CI gate, and a JSON to PO round trip that handles i18next plural suffixes.