[flutter] 플러터 get과 국제화

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 손쉽게 멋진 모바일 앱을 개발할 수 있습니다. 이번에는 플러터 앱에 국제화(i18n)를 적용하는 방법과 get 패키지를 사용하여 국제화 기능을 개선하는 방법에 대해 알아보겠습니다.

1. 플러터 앱에 국제화 적용하기

국제화는 앱을 다양한 언어와 지역에 맞게 번역하고 현지화하는 과정을 말합니다. 플러터 앱에 국제화를 적용하기 위해서는 먼저 flutter_localizations 패키지를 pubspec.yaml 파일에 추가합니다.

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

main.dart 파일에서 MaterialApp 위젯에 localizationsDelegatessupportedLocales 속성을 추가하여 국제화를 설정합니다.

MaterialApp(
  localizationsDelegates: [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: [
    const Locale('en', 'US'), // 영어
    const Locale('ko', 'KR'), // 한국어
    // 추가적으로 지원할 언어 및 지역 설정
  ],
  // 나머지 앱 설정
)

그 다음, lib 폴더에 l10n 폴더를 생성하고, arb 파일을 이용해서 각 언어별 문자열을 관리합니다. 그런 다음 intl_translation 패키지를 사용하여 arb 파일을 dart 파일로 변환합니다.

2. get 패키지를 사용한 국제화 기능 개선하기

get 패키지를 사용하면 좀 더 간편하게 국제화를 적용할 수 있습니다. get 패키지는 라우팅 및 상태 관리 외에도 국제화를 지원하는데, 각각의 페이지 별로 다양한 언어를 적용할 수 있습니다.

우선 get 패키지를 pubspec.yaml 파일에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  get: ^4.1.4

다음으로, main.dart 파일에서 GetMaterialApp 위젯으로 앱을 감싸고, locale 속성을 통해 초기 언어를 설정합니다.

void main() {
  runApp(GetMaterialApp(
    locale: Locale('en', 'US'), // 영어
    // 추가적으로 지원할 언어 및 지역 설정
    home: MyHomePage(),
  ));
}

이제 my_home_page.dart 파일에서 GetBuilder 위젯으로 다국어 지원이 필요한 위젯을 감싸고, initState 메서드에서 해당 위젯에 대한 번역을 처리하면 됩니다.

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GetBuilder<MyController>(
      init: MyController(),
      builder: (controller) {
        return Text(
          controller.title, // 번역된 문자열을 출력
        );
      },
    );
  }
}

class MyController extends GetxController {
  String get title => 'hello'.tr; // 다국어 문자열 설정
}

get 패키지를 사용하면 플러터 앱에 국제화를 보다 간편하게 적용할 수 있습니다.

플러터 앱을 국제화하는 과정은 복잡할 수 있지만, get 패키지를 활용하면 효율적으로 다국어 지원 기능을 개선할 수 있습니다.

이제 여러분의 플러터 앱을 세계 어디에서나 사용할 수 있도록 국제화 기능을 적용해보세요!