[flutter] flutter_localizations 패키지를 사용한 앱의 다국어 지원 운동 추적 방법

다국어 지원은 앱을 전 세계 사용자에게 확장하여 국제 시장에서 성공을 이루는데 중요한 요소입니다. Flutter로 개발된 앱에서는 flutter_localizations 패키지를 사용하여 간단하게 언어와 지역별 지원이 가능합니다. 이번에는 flutter_localizations 패키지를 이용하여 어떻게 다국어 지원을 적용할 수 있는지 알아보겠습니다.

flutter_localizations 패키지란?

flutter_localizations 패키지는 Flutter에서 지원하는 다국어 및 지역화를 제공하는 패키지로, 앱의 다국어 지원을 쉽게 구현할 수 있도록 도와줍니다. 이 패키지는 앱에서 지역화된 문자열, 숫자, 날짜 및 통화 형식을 표시하는 데 필요한 클래스 및 리소스를 제공합니다.

flutter_localizations 패키지 적용하기

  1. 먼저 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';
    import 'package:my_app/l10n/localizations.dart';
    
    void main() {
      runApp(MyApp());
    }
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          localizationsDelegates: [
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
            MyLocalizationsDelegate(),
          ],
          supportedLocales: [
            const Locale('en', ''),
            const Locale('ko', ''),
          ],
          title: 'My App',
          home: MyHomePage(),
        );
      }
    }
    
  3. 다음으로 l10n/localizations.dart 파일을 생성하고 다국어 지원에 필요한 내용을 작성합니다.

    import 'package:flutter/foundation.dart';
    import 'package:flutter/material.dart';
    
    class MyLocalizationsDelegate extends LocalizationsDelegate<MyLocalizations> {
      const MyLocalizationsDelegate();
    
      @override
      bool isSupported(Locale locale) {
        return ['en', 'ko'].contains(locale.languageCode);
      }
    
      @override
      Future<MyLocalizations> load(Locale locale) {
        return SynchronousFuture<MyLocalizations>(
          MyLocalizations(locale),
        );
      }
    
      @override
      bool shouldReload(MyLocalizationsDelegate old) => false;
    }
    
    class MyLocalizations {
      MyLocalizations(this.locale);
    
      final Locale locale;
    
      static Map<String, Map<String, String>> _localizedValues = {
        'en': {
          'title': 'My App',
          'welcome': 'Welcome',
        },
        'ko': {
          'title': '내 앱',
          'welcome': '환영합니다',
        },
      };
    
      String get title {
        return _localizedValues[locale.languageCode]['title'];
      }
    
      String get welcome {
        return _localizedValues[locale.languageCode]['welcome'];
      }
    }
    

결론

이와 같이 flutter_localizations 패키지를 사용하여 Flutter 앱에 다국어 지원을 추가할 수 있습니다. 이를 통해 국제 시장에서 좀 더 많은 사용자들에게 앱을 확장할 수 있으며, 사용자들이 자신의 언어와 지역에 맞게 앱을 사용할 때 더욱 편리하게 서비스를 이용할 수 있게 될 것입니다.