[flutter] easy_localization을 통한 앱의 지역화된 공연/공연 예약 기능

앱을 다국어 지원하고 지역에 따라 텍스트, 이미지, 날짜 및 시간 형식 등을 사용자의 언어와 지역에 맞게 표시하는 기능을 “지역화(localization)”라고 합니다. Flutter 프레임워크에서 이러한 기능을 쉽게 구현할 수 있도록 도와주는 라이브러리 중 하나가 easy_localization입니다.

이 글에서는 easy_localization 패키지를 사용하여 Flutter 앱에 지역화된 공연/공연 예약 기능을 구현하는 방법을 알아보겠습니다. 이를 통해 사용자가 언어 및 지역에 따라 앱을 편리하게 이용할 수 있도록 도와줄 것입니다.

목차

설치 및 설정

먼저, easy_localization 패키지를 설치하고 구성해야 합니다. pubspec.yaml 파일에 다음을 추가합니다:

dependencies:
  flutter:
    sdk: flutter
  easy_localization: <버전>

그런 다음, 터미널에서 다음 명령을 실행하여 패키지를 가져옵니다:

flutter pub get

이제, 앱의 main.dart 파일에서 easy_localization을 초기화해줍니다:

import 'package:easy_localization/easy_localization.dart';

void main() {
  runApp(
    EasyLocalization(
      supportedLocales: [Locale('en', 'US'), Locale('ko', 'KR')],
      path: 'assets/translations', // 번역 파일이 있는 경로
      fallbackLocale: Locale('en', 'US'), // 기본 언어 및 지역
      child: MyApp(),
    ),
  );
}

easy_localization을 초기화하고, 지원하는 언어 및 지역, 번역 파일이 있는 경로, 기본 언어 및 지역을 설정합니다.

다국어 지원 기능 추가

앱의 지역화된 공연/공연 예약 기능을 추가하려면 각 화면 및 위젯에서 문자열을 tr() 메서드로 감싸야 합니다.

Text('Welcome'.tr()),

그런 다음, 앱의 번역 파일을 준비합니다. assets/translations 경로 아래에 en.jsonko.json과 같이 각 언어에 대한 번역 파일을 만듭니다.

en.json:

{
  "welcome": "Welcome to our app"
}

ko.json:

{
  "welcome": "우리 앱에 오신 것을 환영합니다"
}

이제, 사용자의 기기 설정에 따라 해당하는 번역이 자동으로 적용됩니다.

날짜 시간 형식 지역화

날짜 및 시간 형식을 지역화하려면 DateFormat 클래스를 사용하여 지역화된 형식으로 변환할 수 있습니다.

예시:

DateFormat('yyyy-MM-dd', context: context).format(DateTime.now()).toString()

이렇게 하면 사용자의 언어 및 지역 설정에 따라 날짜 형식도 자동으로 변경됩니다.

이미지 및 텍스트 지역화

이미지 및 텍스트 지역화는 easy_localization 패키지의 EasyLocalization.of(context).delegate를 사용하여 해결할 수 있습니다. 다음과 같이 특정 언어 및 지역에 따라 이미지 경로를 동적으로 변경할 수 있습니다.

Image.asset(
  EasyLocalization.of(context).delegate
    .imagesPath('image_name.png', (context)),
)

위와 같이 image_name.png를 다른 디렉토리에서 가져오고 싶다면, assetimagesPath로 바꿔서 사용할 수 있습니다.

종합

이제, easy_localization 패키지를 사용하여 Flutter 앱에 지역화된 공연/공연 예약 기능을 구현할 수 있는 방법을 알아보았습니다. 앱을 만들 때 지역화 기능을 추가함으로써 사용자의 언어와 지역에 따라 앱을 더욱 편리하게 사용할 수 있도록 도와줄 수 있습니다.

이 글에서는 easy_localization의 기본적인 사용 방법에 대해서만 다뤘지만, 더 많은 고급 설정 및 기능들도 제공되고 있습니다. 궁금한 점이나 추가 정보가 필요하다면 easy_localization 패키지의 공식 문서를 참고해보세요.

참고