[flutter] flutter_localizations를 사용한 앱의 다국어 지원 메모장 기능 구현 방법
다국어 지원 메모장 앱을 만들기 위해 flutter_localizations 패키지를 사용할 수 있습니다. 이를 통해 앱을 여러 언어로 번역하고, 사용자가 원하는 언어로 앱을 설정할 수 있습니다.
flutter_localizations 패키지 추가
먼저, pubspec.yaml
파일에 flutter_localizations 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
...
패키지를 추가한 후 터미널에서 flutter pub get
명령어를 실행하여 패키지를 다운로드합니다.
지원할 다국어 추가
MaterialApp
위젯을 생성할 때 localizationsDelegates
와 supportedLocales
속성을 설정해야 합니다.
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''), // English
const Locale('ko', ''), // Korean
],
...
);
}
...
}
위와 같이 supportedLocales
에 지원할 언어를 추가하고, 각 언어에 맞는 번역을 localizationsDelegates
에 등록합니다.
메모장 앱의 다국어 지원
이제 메모장 앱에서 각 언어에 맞는 번역을 할 수 있습니다.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''), // English
const Locale('ko', ''), // Korean
],
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
// 지정된 언어에 따라 다른 문자열을 표시
Localizations.of(context).locale.languageCode == 'ko'
? '메모장'
: 'Memo App',
),
),
body: Center(
child: Text(
// 지정된 언어에 따라 다른 문자열을 표시
Localizations.of(context).locale.languageCode == 'ko'
? '안녕하세요, 메모장 앱입니다.'
: 'Hello, This is a memo app.',
),
),
);
}
}
위의 코드에서는 Localizations.of(context).locale.languageCode
를 이용하여 사용자가 선택한 언어에 따라 다른 문자열을 보여줍니다.
이와 같이 flutter_localizations 패키지를 사용하여 다국어 지원 메모장 앱을 만들 수 있습니다.
참고 자료: