Flutter i18n: 글로벌 앱을 위한 간단한 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
앱 개발
대상자
- Flutter 앱 개발자(중급~고급)
- 다국어 지원이 필요한 앱을 개발하고자 하는 개발자
intl
패키지 및 로컬라이제이션 흐름 이해가 필요한 개발자
핵심 요약
- Flutter의
intl
패키지는.arb
파일을 통해 다국어 지원을 구현하는 핵심 도구 supportedLocales
와localizationsDelegates
설정은 로컬라이제이션 기능을 활성화하는 필수 요소- 플루럴(복수형) 및 성별 기반 메시지 처리는
.arb
파일에 복잡한 규칙 정의로 구현 가능
섹션별 세부 요약
1. 국제화 기초 개념
- 국제화(i18n)는 앱을 언어와 지역에 맞게 적응시키는 설계 과정
- 로컬라이제이션은 실제 번역 및 지역별 구성 요소 추가
- Flutter의 "write once, run anywhere" 철학은 글로벌 확장에 유리
2. `intl` 패키지 사용 방법
.arb
파일 생성:welcomeMessage
와 같은 키-값 쌍으로 번역 데이터 정의- 예:
lib/l10n/app_en.arb
```json
{"@@locale":"en","welcomeMessage":"Welcome to our Flutter App!"}
```
- 로컬라이제이션 코드 생성:
intl_translation
패키지로 Dart 코드 생성 pubspec.yaml
에intl
및intl_translation
의존성 추가generate_l10n.yaml
파일을 통해 생성 설정- 로컬라이제이션 적용:
AppLocalizations.delegate
를localizationsDelegates
에 등록하고supportedLocales
에 언어 목록 추가
3. 로컬라이제이션 코드 활용
AppLocalizations.of(context)!
로 생성된 클래스 접근- 예:
Text(localizations.welcomeMessage)
- 플루럴 처리:
.arb
파일에 복수형 규칙 정의 - 예:
"itemCount":"{count, plural, =0 {No items} one {1 item} other {# items}}"
4. 고급 고려사항
- 플랫폼별 로컬라이제이션: iOS/Android 네이티브 API와의 상호작용 필요 시 플랫폼 채널 사용
- AI 기반 번역 도구: Genkit 등으로 초기 번역 생성 후 수작업 검토
- 로컬라이제이션 관리 플랫폼: Crowdin, Lokalise와 연동하여 번역 흐름 자동화
결론
intl
패키지와localizationsDelegates
설정은 Flutter 앱의 다국어 지원 핵심.arb
파일을 통해 키-값 기반 번역 관리- 플루럴, 성별 처리 등 복잡한 규칙은
.arb
파일에 정의 - 대규모 프로젝트에서는 Crowdin 등 로컬라이제이션 플랫폼과 연동 권장
- AI 도구 활용으로 번역 효율성 향상 가능