flutter phrase 적용하기
flutter 프로젝트에 다국어 처리로 phrase를 적용하기로 함.
pub.dev phrase: https://pub.dev/packages/phrase
phrase | Flutter Package
Phrase Strings over-the-air translations library for Flutter
pub.dev
pub.dev에서 phrase가이드를 보니
phrase를 사용하기위해 우선 flutter 기본 문서의 다국어 처리를 하고, 그후에 phrase를 적용해야한다.
https://docs.flutter.dev/ui/accessibility-and-internationalization/internationalization
Internationalizing Flutter apps
How to internationalize your Flutter app.
docs.flutter.dev
플러터 프로젝트의 터미널에서 아래의 명령어를 입력하여 라이브러리를 추가해준다
flutter pub add flutter_localizations --sdk=flutter
flutter pub add intl:any
phrase도 추가해준다
flutter pub add phrase
pubspec.yaml파일에 추가된것 확인
아래로 내려서 아래 내용 추가
generate : true
프로젝트의 root directory에 새파일 생성 > l10n.yaml 생성한다
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
lib폴더 아래에 l10n폴더생성 한다,
그 안에 새파일 > app_en.arb파일을 추가해준다. << phrase에서 추출해서 추가해줘야함
https://cho22.tistory.com/99 << 여기에 샘플 파일 있음
flutter phrase적용 - phrase 추출하기
https://us.phrase.com/idm-ui/dashboard https://us.phrase.com/idm-ui/logout us.phrase.com 언어추가 > en, ko추가해줌 (이 이름대로 파일명이 추출되니 app_en, app_ko로 하는게 좋은것같음, l10n.yaml 파일에서 설정한 이름이 a
cho22.tistory.com
아래의 명령어 실행하여 코드 제너레이트
flutter pub run phrase
flutter pub get
.dart_tool 아래에 생성된것 확인
코드에서 사용
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:flutter_gen/gen_l10n/phrase_localizations.dart';
import 'package:phrase/phrase.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
//..
localizationsDelegates: PhraseLocalizations.localizationsDelegates,
supportedLocales: PhraseLocalizations.supportedLocales,
);
}
}
위젯에서 사용 (helloWorld는 키값)
Text(AppLocalizations.of(context)!.helloWorld);