[flutter] flutter_localizations 패키지를 사용한 앱의 다국어 지원 쇼핑몰 구현 방법

다국어 지원은 앱을 국제 시장으로 확장하는 데 매우 중요합니다. Flutter에서 flutter_localizations 패키지를 사용하여 앱의 문자열을 다국어로 번역하고 언어 설정을 변경하는 방법에 대해 알아보겠습니다.

1. flutter_localizations 패키지 추가

먼저 pubspec.yaml 파일에 flutter_localizations 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

이후 패키지를 가져오기 위해 다음 명령어를 실행합니다.

flutter pub get

2. 지원할 언어 목록 정의

MaterialApp 위젯으로 앱을 시작할 때 supportedLocaleslocalizationsDelegates 속성을 설정하여 지원할 언어 목록을 정의합니다.

예를 들어, 한국어와 영어를 지원하고 싶다면 아래와 같이 설정합니다.

MaterialApp(
  supportedLocales: [
    const Locale('ko', 'KR'), // 한국어
    const Locale('en', 'US'), // 영어
  ],
  localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  // ...
)

3. 번역 문자열 추가

번역이 필요한 문자열을 별도의 다국어 JSON 파일에 추가합니다. 예를 들어, 한국어와 영어 버전의 문자열을 각각 ko.jsonen.json 파일에 정의합니다.

ko.json

{
  "appBarTitle": "다국어 쇼핑몰",
  "welcomeMessage": "환영합니다!",
  // ...
}

en.json

{
  "appBarTitle": "Multilingual Shop",
  "welcomeMessage": "Welcome!",
  // ...
}

4. 문자열 사용

위에서 정의한 번역 문자열을 사용하기 위해 Localizations 클래스의 of 메서드 및 LocalizationsDelegate 인스턴스를 활용하여 가져옵니다.

String appBarTitle = Localizations.of(context, WidgetsLocalizations).appBarTitle;
String welcomeMessage = Localizations.of(context, WidgetsLocalizations).welcomeMessage;

5. 언어 변경

사용자가 언어를 변경하면, 지원되는 언어 중 하나로 설정을 변경하고, 앱을 다시 불러오면 됩니다.

onLanguageChanged(Locale locale) {
  MyHomePage.of(context).setLocale(Locale(locale.languageCode, locale.countryCode));
  // 앱을 다시 불러오는 방법은 개별적으로 선택하십시오.
}

이제 flutter_localizations 패키지를 사용하여 Flutter 앱에서 다국어를 지원하는 방법을 알게 되었습니다. 이를 통해 앱을 다국어로 번역하여 국제 사용자들에게 더 다양한 경험을 제공할 수 있습니다.

참고 자료: