[flutter] easy_localization을 활용한 앱 내 지역화된 식물/동물 정보

소개

이 포스트에서는 Flutter 앱 내에서 다국어 및 지역화된 데이터를 효과적으로 관리하기 위해 easy_localization 패키지를 활용하는 방법에 대해 살펴보겠습니다. 이를 위해 예시로, 지역화된 식물 및 동물 정보를 제공하는 앱을 만들어 보겠습니다.

easy_localization 패키지란?

easy_localization은 Flutter 앱에서 다국어 및 지역화를 쉽게 관리하기 위한 패키지로, 다양한 언어 및 지역에 대한 텍스트 및 리소스 파일을 관리하고 쉽게 접근할 수 있는 기능을 제공합니다.

프로젝트 설정

먼저, easy_localization 패키지를 Flutter 프로젝트에 추가하고, pubspec.yaml 파일에 의존성을 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  easy_localization: ^3.0.0

그 후, pubspec.yaml 파일이 있는 디렉토리에서 터미널을 열고 다음 명령어를 실행하여 패키지를 설치합니다.

flutter pub get

지역화된 데이터 관리

지역화된 데이터를 효과적으로 관리하기 위해 앱 내에서 사용될 모든 텍스트 및 이미지를 지역화된 리소스 파일로 정의합니다. 예를 들어, assets/lang/ 디렉토리에 en.jsonko.json과 같이 다국어에 따른 텍스트 데이터를 정의합니다.

// en.json
{
  "plant_name": "Flower",
  "animal_name": "Bird"
}
// ko.json
{
  "plant_name": "꽃",
  "animal_name": "새"
}

코드 구현

다음은 easy_localization 패키지를 활용하여 지역화된 데이터를 Flutter 앱 내에서 사용하는 예시 코드입니다.

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

void main() {
  runApp(
    EasyLocalization(
      supportedLocales: [Locale('en', 'US'), Locale('ko', 'KR')],
      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: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('app_title'.tr()), // 텍스트 지역화
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text('plant_name'.tr()), // 식물 정보 텍스트
            Text('animal_name'.tr()), // 동물 정보 텍스트
            Image.asset('assets/images/${'image_name'.tr()}.jpg'), // 이미지 지역화
          ],
        ),
      ),
    );
  }
}

결론

eays_localization 패키지를 활용하면 Flutter 앱 내에서 지역화된 텍스트 및 이미지를 효과적으로 관리할 수 있습니다. 이를 통해 사용자에게 다국어 및 다지역에 맞는 콘텐츠를 제공하고, 앱의 사용자 경험을 향상시킬 수 있습니다.

참고