Flutter 국제화 및 지역화
Flutter에서 국제화(Internationalization) 및 지역화(Localization)는 앱을 여러 언어와 문화에 맞춰 제공할 수 있도록 하는 중요한 기능입니다. Flutter는 이를 지원하기 위해 flutter_localizations
패키지를 제공하며, 이를 사용하여 텍스트, 날짜, 숫자 등의 형식을 각 지역에 맞게 조정할 수 있습니다. 다음은 Flutter 앱에서 국제화 및 지역화를 구현하는 기본적인 단계입니다.
1. pubspec.yaml
파일 수정
먼저 pubspec.yaml
파일에 flutter_localizations
패키지와 intl
패키지를 추가해야 합니다.
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.17.0
2. MaterialApp
설정
MaterialApp
위젯에서 localizationsDelegates
및 supportedLocales
를 설정합니다.
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:intl/intl.dart';
import 'generated/l10n.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
home: MyHomePage(),
);
}
}
3. arb
파일 생성
각 언어에 대한 .arb
(Application Resource Bundle) 파일을 생성합니다. 예를 들어, intl_en.arb
와 intl_ko.arb
파일을 생성할 수 있습니다.
intl_en.arb
{
"title": "Hello World",
"@title": {
"description": "The application title"
}
}
intl_ko.arb
{
"title": "안녕하세요",
"@title": {
"description": "The application title"
}
}
4. intl
패키지 사용
intl
패키지를 사용하여 번역된 문자열을 사용합니다.
import 'package:flutter/material.dart';
import 'generated/l10n.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(S.of(context).title),
),
body: Center(
child: Text(S.of(context).title),
),
);
}
}
5. 코드 생성
마지막으로 intl
패키지의 intl_translation
도구를 사용하여 .arb
파일을 기반으로 Dart 코드를 생성합니다. 터미널에서 다음 명령어를 실행합니다.
flutter pub run intl_translation:extract_to_arb --output-dir=lib/l10n lib/main.dart
flutter pub run intl_translation:generate_from_arb --output-dir=lib/l10n --no-use-deferred-loading lib/l10n/intl_*.arb
이렇게 하면 lib/l10n
디렉토리에 생성된 Dart 파일이 생성되며, 이를 통해 앱에서 다국어를 지원할 수 있습니다.
위의 단계들을 따르면 Flutter 앱에서 국제화 및 지역화를 쉽게 구현할 수 있습니다. 추가적인 정보나 특정 문제에 대한 해결책이 필요하다면 질문해 주세요!
이런 자료를 참고했어요.
[1] 티스토리 – [Flutter] intl & intl_utils : 국제화(다국어처리) 라이브러리 (https://ctoahn.tistory.com/19)
[2] Medium – [Flutter]”Localization”, “Internationalization”, “Translation” (https://medium.com/@sunlution/flutter-localization-internationalization-translation-5904f828c6d3)
[3] 티스토리 – [Flutter] 플러터 앱 국제화 – 해나래 – 티스토리 (https://points.tistory.com/59)
[4] 티스토리 – 플러터(Flutter) 다국어 대응하기 (Localization) – 프론티어쿼리 (https://fronquarry.tistory.com/8)
뤼튼 사용하러 가기 > https://agent.wrtn.ai/5xb91l