[flutter] FlatButton을 사용하여 다국어 지원 기능을 추가하는 방법은?
다양한 언어를 지원하는 앱을 개발할 때 중요한 부분 중 하나는 다국어 지원 기능을 추가하는 것입니다. Flutter에서는 Intl 패키지를 사용하여 간단하게 다국어 지원 기능을 추가할 수 있습니다. 이 포스트에서는 FlatButton을 예로 들어, 다국어 지원 기능을 추가하는 방법을 알아보겠습니다.
1. Intl 패키지 추가
먼저, pubspec.yaml
파일에 Intl 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
intl: ^0.17.0
이후 터미널에서 flutter pub get
명령어를 실행하여 패키지를 다운로드 받습니다.
2. 다국어 지원 기능 구현
아래는 FlatButton 위젯에 다국어 지원 기능을 추가한 예시입니다.
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('다국어 지원 예제'),
),
body: Center(
child: FlatButton(
onPressed: () {
// 다국어 지원 기능을 추가한 버튼 텍스트
String buttonText = Intl.message('Press Me', name: 'buttonText');
print(buttonText);
},
child: Text('Press Me'),
),
),
),
);
}
}
3. 다국어 지원 설정
마지막으로, Intl 패키지를 사용하여 지원하고자 하는 각 언어에 대한 문자열을 설정합니다.
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class MyLocalizations {
static Future<MyLocalizations> load(Locale locale) {
final String name = (locale.countryCode.isEmpty) ? locale.languageCode : locale.toString();
final String localeName = Intl.canonicalizedLocale(name);
return initializeMessages(localeName).then((_) {
Intl.defaultLocale = localeName;
return MyLocalizations();
});
}
static MyLocalizations of(BuildContext context) {
return Localizations.of<MyLocalizations>(context, MyLocalizations);
}
String get buttonText {
return Intl.message(
'Press Me',
name: 'buttonText',
desc: 'The text on the Press Me button',
);
}
}
위와 같이 MyLocalizations 클래스를 생성하여 사용하고자 하는 각 언어에 대한 buttonText를 설정해줍니다.
이렇게 설정된 MyLocalizations 클래스를 이용하여 각 언어에 대한 버튼 텍스트를 불러올 수 있습니다.
이제, Intl 패키지를 사용하여 FlatButton 위젯을 다국어 지원 기능으로 구현할 수 있게 되었습니다.
더 많은 정보를 찾으려면 Introducing the Flutter intl package를 확인해보세요.