플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 손쉽게 멋진 모바일 앱을 개발할 수 있습니다. 이번에는 플러터 앱에 국제화(i18n)를 적용하는 방법과 get
패키지를 사용하여 국제화 기능을 개선하는 방법에 대해 알아보겠습니다.
1. 플러터 앱에 국제화 적용하기
국제화는 앱을 다양한 언어와 지역에 맞게 번역하고 현지화하는 과정을 말합니다. 플러터 앱에 국제화를 적용하기 위해서는 먼저 flutter_localizations
패키지를 pubspec.yaml 파일에 추가합니다.
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
main.dart
파일에서 MaterialApp
위젯에 localizationsDelegates
와 supportedLocales
속성을 추가하여 국제화를 설정합니다.
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
패키지를 활용하면 효율적으로 다국어 지원 기능을 개선할 수 있습니다.
이제 여러분의 플러터 앱을 세계 어디에서나 사용할 수 있도록 국제화 기능을 적용해보세요!