This article is an English translation of the original Japanese article.

I migrated an Expo app from Japanese only to Japanese, English, and Simplified Chinese. Instead of translating everything at once, I divided the work into three stages: foundation, core flows, and remaining screens.

The harder part was not gathering translations, but deciding device language versus manual setting priority, date formatting, and handling untranslated screens.

Defined language setting responsibility first

I used i18next and react-i18next. For device language detection, I used Hermes Intl.