앱을 글로벌 서비스로 운영한다면 다국어 지원(i18n, Internationalization)은 필수이다. React Native에서 다국어를 적용하는 방식은 생각보다 다양하며, 올바른 전략을 세우지 않으면 번역 관리나 성능 이슈가 발생할 수 있다. 이번 글에서는 i18n 구현 방법부터 라이브러리 비교, 실제 적용 팁까지 정리해본다.
<Text>안녕하세요</Text>
// ko.json
{
"welcome": "안녕하세요",
"logout": "로그아웃"
}
// en.json
{
"welcome": "Hello",
"logout": "Logout"
}
import i18n from "i18n-js";
import * as Localization from "expo-localization";
import ko from "./locales/ko.json";
import en from "./locales/en.json";
i18n.translations = { ko, en };
i18n.locale = Localization.locale;
i18n.fallbacks = true;
<Text>{i18n.t("welcome")}</Text>;
라이브러리 | 특징 | 추천 상황 |
---|---|---|
i18n-js | 가볍고 단순, Expo와 잘 맞음 | 소규모 앱 |
react-i18next | 강력한 생태계, Suspense 지원, Lazy-loading 가능 | 중대형 앱 |
react-native-localize | 언어/지역 자동 감지, 타임존, 달력, 화폐 등 로케일 처리 가능 | 글로벌 서비스 |
LinguiJS | CLI 기반 번역 관리, 메시지 포맷 강력 | 대규모 프로젝트 |
I18nManager
설정 필요Intl
API 또는 react-intl
사용react-native-localize
로 언어 감지 후 저장AsyncStorage
에 저장auth.login.button
) → 중복 방지React Native에서 다국어 지원은 라이브러리 선택 + 번역 파일 관리 전략 + UI 대응이 핵심이다.
초기에는 i18n-js
나 react-i18next
로 시작해도 충분하고, 앱이 커지면 번역 관리 툴을 반드시 고려해야 한다.