AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Flutter i18n: 글로벌 앱을 위한 간단한 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

앱 개발

대상자

  • Flutter 앱 개발자(중급~고급)
  • 다국어 지원이 필요한 앱을 개발하고자 하는 개발자
  • intl 패키지 및 로컬라이제이션 흐름 이해가 필요한 개발자

핵심 요약

  • Flutter의 intl 패키지.arb 파일을 통해 다국어 지원을 구현하는 핵심 도구
  • supportedLocaleslocalizationsDelegates 설정은 로컬라이제이션 기능을 활성화하는 필수 요소
  • 플루럴(복수형) 및 성별 기반 메시지 처리.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.yamlintlintl_translation 의존성 추가
  • generate_l10n.yaml 파일을 통해 생성 설정
  • 로컬라이제이션 적용: AppLocalizations.delegatelocalizationsDelegates에 등록하고 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 도구 활용으로 번역 효율성 향상 가능