[flutter] 플러터(Flutter)와 지역화(Localization) 처리하기

소개

플러터(Flutter)는 모바일 앱 개발을 위한 오픈 소스 프레임워크로, 하나의 코드베이스로 안드로이드와 iOS 앱을 개발할 수 있습니다. 하지만, 다국어 지원이 필요한 경우 지역화(Localization) 처리를 해야 합니다. 플러터에서는 이를 쉽고 편리하게 처리할 수 있는 기능을 제공하고 있습니다. 이 글에서는 플러터에서의 지역화 처리 방법에 대해 알아보겠습니다.

지역화 설정하기

  1. flutter_localizations 의존성 추가하기

    pubspec.yaml 파일에 flutter_localizations 의존성을 추가합니다.

    dependencies:
      flutter:
        sdk: flutter
      flutter_localizations:
        sdk: flutter
    
  2. 지원할 언어 설정하기

    main.dart 파일에서 지원할 언어를 설정합니다.

    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(
          title: 'Flutter Localization',
          supportedLocales: [
            const Locale('en', 'US'), // 영어 (미국)
            const Locale('ko', 'KR'), // 한국어
          ],
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
          ],
          localeResolutionCallback: (locale, supportedLocales) {
            // 언어 설정을 앱 전체에 적용하기 위한 로직을 작성할 수 있습니다.
            return locale;
          },
          home: HomePage(),
        );
      }
    }
    
  3. 언어 파일 작성하기

    lib/l10n 폴더에 다국어 지원을 위한 파일을 작성합니다.

    • en_US.json (영어)
    • ko_KR.json (한국어)
    {
      "hello": "Hello, Flutter!",
      "button_text": "Click me!"
    }
    
  4. 번역된 텍스트 사용하기

    위에서 작성한 언어 파일을 사용하여 번역된 텍스트를 가져올 수 있습니다.

    import 'package:flutter/material.dart';
    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    class HomePage extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        var localizedText = AppLocalizations.of(context);
    
        return Scaffold(
          appBar: AppBar(
            title: Text(localizedText.hello),
          ),
          body: Center(
            child: RaisedButton(
              onPressed: () {},
              child: Text(localizedText.button_text),
            ),
          ),
        );
      }
    }
    

마무리

이제 플러터(Flutter) 앱에서 지역화 처리를 할 준비가 되었습니다. 위의 방법을 따라 적절히 설정하고 언어 파일을 작성하여 번역된 텍스트를 사용할 수 있습니다. 지원할 언어를 추가하고 필요한 번역을 추가하는 등의 작업을 통해 앱을 다국어로 지원할 수 있습니다.

더 자세한 내용은 Flutter 공식 문서를 참고하시기 바랍니다.