[flutter] 플러터 intl을 사용해서 여러 언어로 앱을 제작할 수 있는가요?
먼저, intl
패키지를 pubspec.yaml
파일에 추가해야 합니다. 다음은 pubspec.yaml
파일에 intl
패키지를 추가하는 예시입니다:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.17.0
패키지를 추가한 뒤에는 언어에 따라 다른 문자열을 처리하는 방법을 알아보겠습니다. 먼저, intl
패키지에서 제공하는 Intl.message
메소드를 사용하여 문자열을 지역화합니다.
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
// 추가로 필요한 지역화 델리게이트들을 여기에 추가합니다.
],
supportedLocales: [
const Locale('en', 'US'), // 영어 (미국)
const Locale('ko', 'KR'), // 한국어 (대한민국)
// 지원할 언어들을 여기에 추가합니다.
],
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(Intl.message(
'앱 제목',
name: 'appTitle',
)),
),
body: Center(
child: Text(Intl.message(
'앱 내용',
name: 'appContent',
)),
),
);
}
}
위의 코드에서 Intl.message
메소드를 사용하여 문자열을 지역화합니다. name
매개변수를 사용하여 문자열을 고유하게 식별합니다. 매개변수를 사용하여 언어별로 다른 문자열 값을 지정할 수 있습니다.
위의 예제는 영어와 한국어를 지원하는 앱입니다. supportedLocales
에서 추가한 언어에 따라 Intl.message
의 name
에 해당하는 문자열 값이 출력됩니다.
플러터의 intl
패키지를 사용하면 간단하게 다국어 앱을 제작할 수 있습니다. 자세한 내용은 intl 패키지의 공식 문서를 참고하십시오.