Flutter i18n 플러그인 사용
7509 단어 IntelliJAndroidStudioI18nFlutter
소개
Flutter의 공식으로 소개되고 있다 Internationalizing (을)를 사용하면(자), 언어 파일의 갱신이 너무 지나치게 무리였으므로,
Flutter i18n 플러그인으로 다언어화를 편하게 한 비망.
환경
이전 준비
Flutter i18n 플러그인 설치
(플러그인 설치만 하기 때문에 할애)
Flutter i18n 플러그인
해주는 것
해주는 것
파일 자체는 "generated/i18n.dart"일 수 있습니다
스스로 해야 할 일
주의사항
return new MaterialApp(
localizationsDelegates: [S.delegate],
supportedLocales: S.delegate.supportedLocales,
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
라고 하면, Scaffold의 Appbar 주위가 에러 토한다.
(MaterialLocalizations 사용하고 있지만, en 이외는 디폴트로 보지 않기 때문에 에러가 된다)
이하와 같이 써야 한다.
import 'package:your_app_name/generated/i18n.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
// ・・・
return new MaterialApp(
localizationsDelegates: [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Flutter Demo Home Page'),
);
쿠파치노 사용하지 않는 경우에도, GlobalCupertinoLocalizations 하지 않으면 안된다.
텍스트 필드를 길게 누르면 앱이 충돌합니다.
TextField를 길게 눌러 충돌하는 문제를 해결하는 방법
사용법
언어를 더하는 방법
${project_root}/res/values를 선택한 상태에서,
[File] - [New] - [Arb File]
이런 다이얼로그가 나오므로 언어를 선택한다. 방언은 임의.
만든 arb 파일에 설정을 추가해 간다
strings_en.arb
{
"_comment": "アプリ名",
"appName": "my app name",
"_comment": "コメント適当に入れながら書いてく",
}
strings_en.arb
{
"_comment": "アプリ名",
"appName": "アプリ名適当に入れて",
"_comment": "コメント適当に入れながら書いてく",
}
파일 변경 시점에 자동 생성
덧붙여서 자동 생성 파일을 스스로 편집하려고 해도 자동 생성된 상태로 돌아온다
이 정의 자체는 nest한 Object로 정의할 수 없기 때문에, 코멘트 작성하면서 하는 것이 좋다.
같은 키의 것은 가장 마지막 것만이 자동 생성되어 추가되므로 원하는만큼 추가는 가능.
(단, ide가 시각적으로 시끄럽다는 난점이・・・)
사용법
import 'package:your_app_name/generated/i18n.dart';
// ・・・
@override
Widget build(BuildContext context) {
var name = S.of(context).appName;
}
location은 platform 레벨의 언어 설정에 의존할 수 밖에 없는 것 같다?
앱 레벨에서 다시 작성할 수 있다면 어떻게 일단 알고 싶다는 생각이 있으므로, 누군가를 가르쳐 주세요.
끝에
Map에서 정의하고 getter 살리거나 명령 몇 번이나 스스로 두드려야 할까라고 생각하고 힘들 것 같다. . 라고 생각했지만,
이 플러그인이 있으면 스트레스없이 다국어화할 수 있습니다.
en가 필수가 되어 버립니다만, 다언어화는 맛있는 경우는, 일본어로 돌진하면 좋다고 생각합니다.
(지금 자신이 만들고 있는 것은 그렇게 되어 있다)
Reference
이 문제에 관하여(Flutter i18n 플러그인 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sh-ogawa/items/94d560d0419433bf1e75
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Flutter i18n 플러그인 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sh-ogawa/items/94d560d0419433bf1e75텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)