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.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (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.)