[flutter] 플러터 intl을 사용해서 앱에서 모든 메시지를 다국어로 처리하려면 어떻게 해야 하나요?

플러터에서 다국어 처리를 위해 intl 패키지를 사용할 수 있습니다. intl 패키지를 사용하면 간편하게 앱에서 사용되는 모든 메시지를 다국어로 처리할 수 있습니다. 아래는 intl 패키지를 사용하여 플러터 앱에서 다국어 처리를 구현하는 방법입니다.

  1. intl 패키지 추가하기 플러터 프로젝트의 pubspec.yaml 파일에 intl 패키지를 추가해야 합니다. 아래와 같이 dependencies에 intl 패키지를 추가합니다.

    dependencies:
      flutter:
        sdk: flutter
      ...
      intl: ^0.17.0
    

    패키지를 추가한 후, pub get 명령어를 실행하여 패키지를 다운로드해주세요.

  2. 다국어 메시지 정의하기 intl 패키지를 사용하여 다국어 처리를 하려면 다국어 메시지를 정의해야 합니다. 예를 들어, 한국어와 영어를 지원하는 경우에는 l10n/messages_ko.arbl10n/messages_en.arb 파일을 생성합니다.

    l10n/messages_ko.arb 파일 예시:

    {
      "greeting": "안녕하세요!",
      "title": "플러터 다국어 처리 예제"
    }
    

    l10n/messages_en.arb 파일 예시:

    {
      "greeting": "Hello!",
      "title": "Flutter Internationalization Example"
    }
    
  3. intl 메시지 호출하기 intl 패키지에서 제공하는 Intl.message 함수를 사용하여 다국어 메시지를 호출할 수 있습니다. 예를 들어, 다국어로 처리된 제목을 표시하려면 다음과 같이 코드를 작성합니다.

    import 'package:flutter/material.dart';
    import 'package:intl/intl.dart';
    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: AppLocalizations.of(context).title,
          home: Scaffold(
            appBar: AppBar(
              title: Text(AppLocalizations.of(context).greeting),
            ),
            body: Center(
              child: Text(
                AppLocalizations.of(context).greeting,
                style: TextStyle(fontSize: 20),
              ),
            ),
          ),
          localizationsDelegates: [
            AppLocalizations.delegate,
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
          ],
          supportedLocales: [
            const Locale('en', ''),
            const Locale('ko', ''),
          ],
          ...
        );
      }
    }
    

    위 코드에서 AppLocalizations.of(context).greeting은 현재 설정된 언어에 맞는 다국어 메시지를 가져옵니다.

  4. 지원하는 언어 설정하기 supportedLocales 속성에 앱에서 지원하는 언어를 설정해야 합니다. 예를 들어, 한국어와 영어를 지원하려면 다음과 같이 설정합니다.

    supportedLocales: [
      const Locale('en', ''),
      const Locale('ko', ''),
    ],
    

    앱의 언어 설정은 플랫폼 설정에 따라 자동으로 변경됩니다.

위와 같은 방법으로 intl 패키지를 사용하여 플러터 앱에서 다국어 처리를 구현할 수 있습니다. intl 패키지는 편리한 함수와 도구를 제공하여 다국어 처리를 쉽게 할 수 있도록 도와줍니다. 자세한 내용은 intl 패키지의 문서를 참고하시기 바랍니다.

참고 문서: