[flutter] 플러터에서의 앱 다국어 처리 방법

플러터는 멀티플랫폼 앱 개발 프레임워크로, 다국어 지원은 앱의 사용자들에게 더 좋은 경험을 제공하는 중요한 기능입니다. 이번 글에서는 플러터에서 앱 다국어 처리를 위한 방법을 살펴보겠습니다.

1. 다국어 지원을 위한 패키지 설치

우선, 다국어 처리를 위해 플러터에서 제공하는 flutter_localizations 패키지를 설치해야 합니다. pubspec.yaml 파일에 다음과 같이 패키지를 추가해주세요:

dependencies:
  flutter:
    sdk: flutter

  flutter_localizations:
    sdk: flutter

설정이 완료되면 pubspec.yaml 파일이 있는 디렉토리에서 다음 명령어를 실행하여 패키지를 가져옵니다:

flutter pub get

2. 지원할 언어 추가하기

앱에서 지원할 언어를 정의해야 합니다. 이를 위해 MaterialApp 위젯의 supportedLocales 속성에 다음과 같이 사용할 언어를 목록으로 추가해주세요:

MaterialApp(
  supportedLocales: [
    Locale('en', 'US'), // 영어
    Locale('ko', 'KR'), // 한국어
    Locale('ja', 'JP'), // 일본어
    // 추가 언어
  ],
  // ...
)

new Locale() 생성자의 첫 번째 매개변수는 ISO 639-1 코드로 언어를, 두 번째 매개변수는 ISO 3166-1-alpha-2 코드로 국가를 나타냅니다.

3. 다국어 문자열 파일 작성

각 언어에 대한 다국어 문자열을 작성해야 합니다. 프로젝트의 lib 디렉토리에 l10n 디렉토리를 생성하고, 그 안에 intl_message.arb 파일을 생성하세요. 이 파일에 필요한 다국어 문자열을 작성합니다. 예를 들어:

{
  "@@locale": "ar",
  "hello": "مرحبًا",
  "welcome": "أهلاً وسهلاً"
}

위와 같이 작성된 파일을 사용하여 다음과 같이 모든 지원하는 언어의 다국어 문자열을 작성합니다.

4. 앱에서 다국어 문자열 사용하기

이제 앱에서 다국어 문자열을 사용할 수 있습니다. intl_message.arb 파일을 기반으로 AppLocalizations 클래스를 생성합니다. 이 클래스는 앱에서 사용할 수 있는 다국어 문자열을 제공하는 역할을 합니다. AppLocalizations 클래스의 인스턴스를 생성하기 위해 Localizations 위젯과 Delegate를 사용합니다. 예를 들어:

MaterialApp(
  // ...
  localizationsDelegates: [
    AppLocalizations.delegate,
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
  ],
  // ...
)

앱에서 다국어 문자열을 사용하기 위해서는 AppLocalizations.of(context)를 호출하여 AppLocalizations 클래스의 인스턴스를 얻어와야 합니다. 예를 들어:

Text(
  AppLocalizations.of(context).hello,
)

5. 다국어 변경 처리

마지막으로, 사용자가 언어를 변경할 때 앱이 해당 언어로 업데이트되도록 다국어 변경 처리를 해야 합니다. 예를 들어, 사용자가 언어 선택을 위한 드롭다운 메뉴가 있는 설정 화면을 추가할 수 있습니다. 사용자가 언어를 선택하면 앱이 해당 언어로 설정을 업데이트하도록 로직을 추가해주세요. 이후 앱이 다시 빌드되거나 화면이 다시 로드될 때 앱이 선택한 언어로 업데이트되게 됩니다.

플러터에서 앱 다국어 처리를 위해 위와 같은 단계를 따르면 쉽게 다국어 지원 앱을 개발할 수 있습니다. 앱의 사용자들에게 더 좋은 경험을 제공하기 위해 플러터의 다국어 처리 기능을 적극적으로 활용하세요.

참고 자료