티스토리 뷰
아래 개발페이지에 있는것을 쉽게 설명
https://flutter.dev/docs/development/accessibility-and-localization/internationalization
1.pubspec.xml 파일 dependencies 및 설정 추가
dependencies:
flutter:
sdk: flutter
flutter_localizations: # 추가
sdk: flutter # 추가
intl: ^0.16.1 # 추가
flutter:
generate: true # 추가
2. 소스 추가 (나중엔 import문과 localizationsDelegates, supportedLocales 부분을 수정할 것이다)
import 'package:flutter_localizations/flutter_localizations.dart';
MaterialApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: [
const Locale('en', ''),
const Locale('ko', ''),
// 그외 언어들은 개발페이지 보고 추가할거 추가
],
// ...
)
3. l10n.yaml 파일 생성 (프로젝트 루트 아래)
arb-dir: lib/l10n
template-arb-file: app_en.arb
output-localization-file: app_localizations.dart
supportedLocales에 추가하지 않은 언어의 경우 app_en.arb 가 기본으로 사용되는 걸로 보인다
4. lib/l10n 폴더 안에 app_en.arb 파일 생성
{
"hello": "Hello",
"@hello": {
"description": "The conventional newborn programmer greeting"
}
}
문자열 키를 하나 정의 하면 대표파일에 '@'를 포함한 같은 키가 있어야 한다. (없으면 컴파일에러) "description" 은 정의하지 않아도 무관
콤마 잘써야함, 마지막라인엔 콤마 쓰면안됨
5. 그외 언어도 파일 만들어 정의, 추가된 언어파일에는 '@'정의 하지 않아도됨
app_ko.arb
{
"hello": "안녕"
}
6. 이렇게 까지 하고 실행을 하면 아래폴더에 파일들이 생성된다
${FLUTTER_PROJECT}/.dart_tool/flutter_gen/gen_l10n.
${FLUTTER_PROJECT}/.dart_tool/flutter_gen/gen_l10n.
7. 파일이 정상적으로 생성되면 app 코드를 수정
// import 'package:flutter_localizations/flutter_localizations.dart'; << 제거
// 아래 import문 추가
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
MaterialApp(
// 기존꺼 제거
// localizationsDelegates: [
// GlobalMaterialLocalizations.delegate,
// GlobalWidgetsLocalizations.delegate,
// GlobalCupertinoLocalizations.delegate,
// ],
// supportedLocales: [
// const Locale('en', ''),
// const Locale('ko', ''),
// const Locale.fromSubtags(languageCode: 'zh'), // Chinese *See Advanced Locales below*
// // ... other locales the app supports
// ],
// ...
// 아래꺼로 사용
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
)
8. 문자 사용시 아래처럼 사용
AppLocalizations.of(context).hello
이후부터는 언어를 추가할때 app_xx.arb 파일만 추가하면 됨
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 노래
- 도쿄
- 서울숲별밤축제
- 진해
- 일본
- 아사가야
- 잡담
- 영화
- 신주쿠
- android
- 공연
- 사진
- 안드로이드
- 야마다 타카유키
- postcrossing
- 코이데 케이스케
- 음악
- Linux
- 일기
- Java
- 책
- Mac
- epik high
- 에픽하이
- 인디
- 포스트크로싱
- 여행
- 드라마
- 락
- 일어일기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함