[flutter] 플러터 앱에서 다국어 지원은 어떻게 할 수 있나요?

다국어 지원을 위한 플러터 앱 설정

  1. 프로젝트에 다국어 지원 추가
    pubspec.yaml 파일에 flutter_localizations 라이브러리를 추가합니다.

    dependencies:
      flutter:
        sdk: flutter
      flutter_localizations:
        sdk: flutter
    
  2. 지역 및 언어 설정
    앱에 지원할 각 언어에 대한 지역 및 언어 설정을 MaterialApplocalizationsDelegatessupportedLocales에 추가합니다.

    import 'package:flutter/material.dart';
    import 'package:flutter_localizations/flutter_localizations.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
            GlobalCupertinoLocalizations.delegate,
          ],
          supportedLocales: [
            Locale('en', 'US'), // 영어 (미국)
            Locale('ko', 'KR'), // 한국어 (한국)
          ],
          // 나머지 앱 설정...
        );
      }
    }
    
  3. 언어 문자열 추가
    앱에 사용될 모든 문자열을 JSON 형식의 파일에 각 언어별로 추가합니다.

    /lib
      /l10n
        app_en.json
        app_ko.json
    

    app_en.json (영어)

    {
      "title": "Hello, World!",
      "description": "This is an example of multilingual support in Flutter."
    }
    

    app_ko.json (한국어)

    {
      "title": "안녕, 세상아!",
      "description": "플러터에서의 다국어 지원 예제입니다."
    }
    
  4. 문자열 사용
    Localizations.of(context).MyAppLocalizations.of(context).을 사용하여 다국어 문자열을 사용합니다.

    class MyHomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(MyAppLocalizations.of(context).title),
          ),
          body: Center(
            child: Text(MyAppLocalizations.of(context).description),
          ),
        );
      }
    }
    

이제 앱을 빌드하고 실행하면 지역 설정에 따라 영어 또는 한국어 문자열이 표시됩니다. 위의 단계를 따라하면 플러터 앱에서 다국어를 지원할 수 있습니다.