React Native i18n: A Practical Guide to Multi-Language Mobile Apps Most i18n bugs in React Native apps trace back to two decisions made early: hardcoding strings, and using string concatenation to build sentences. Both feel fine when you're shipping in English. Both are catastrophic the day you add a second locale. This is the practical playbook I wish I had when I first added Spanish, Japanese, and Arabic to a React Native app: which library to pick, the patterns that scale, and the traps that only show up in production. TL;DR Use i18next + react-i18next + expo-localization (or react-native-localize on bare RN). Never hardcode strings, never concatenate to build sentences. Use ICU pluralization — count === 1 ? 'a' : 'b' is wrong in most languages. Plan for RTL from day one with marginStart / marginEnd instead of left/right. Use namespaces ( auth.json , home.json ) once you cross ~500 keys. Format dates/numbers/currencies with the Intl API.…