[flutter] easy_localization을 사용하여 앱 내 문자열 리소스 외부화

앱을 다국어 지원하려면 문자열 리소스를 외부 파일로 관리하는 것이 좋습니다. easy_localization 패키지를 사용하면 이 작업을 쉽게 수행할 수 있습니다. easy_localization을 사용하여 앱 내 문자열 리소스를 외부 파일로 구성하는 방법을 살펴보겠습니다.

1. easy_localization 패키지 추가

먼저 pubspec.yaml 파일에 easy_localization 패키지를 추가해야 합니다. 이를 위해 다음과 같이 작성합니다:

dependencies:
  flutter:
    sdk: flutter
  easy_localization: ^3.0.0

그런 다음 터미널에서 다음 명령을 실행하여 패키지를 설치합니다:

flutter pub get

2. 언어 리소스 파일 생성

assets/lang 디렉토리를 생성하고 앱에서 사용할 각 언어의 리소스에 대한 파일을 생성합니다. 예를 들어, en.jsonko.json과 같은 파일을 만들어 각 언어에 대한 문자열 리소스를 정의합니다.

// en.json
{
  "title": "Hello World!",
  "welcome": "Welcome to our app"
}

// ko.json
{
  "title": "안녕하세요!",
  "welcome": "우리 앱에 오신 것을 환영합니다"
}

3. 앱에서 easy_localization 사용

이제 앱 내부에서 easy_localization을 사용하여 문자열 리소스를 불러올 수 있습니다. 다음은 간단한 예시입니다.

import 'package:flutter/material.dart';
import 'package:easy_localization/easy_localization.dart';

void main() {
  runApp(
    EasyLocalization(
      supportedLocales: [Locale('en', 'US'), Locale('ko', 'KO')],
      path: 'assets/lang',
      fallbackLocale: Locale('en', 'US'),
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: context.localizationDelegates,
      supportedLocales: context.supportedLocales,
      locale: context.locale,
      home: Scaffold(
        appBar: AppBar(
          title: Text('title'.tr()), // Accessing localized string
        ),
        body: Center(
          child: Text('welcome'.tr()), // Accessing localized string
        ),
      ),
    );
  }
}

결론

위의 단계를 따라가면 flutter 앱에서 easy_localization을 사용하여 문자열 리소스를 외부 파일로 관리할 수 있습니다. 이를 통해 앱을 다국어 지원하고 사용자가 쉽게 다양한 언어로 앱을 이용하도록 할 수 있습니다.

참고: easy_localization 패키지 - easy_localization 패키지에 대한 자세한 정보와 문서입니다.