Flutterでの多言語対応をする
本日はFlutterでの多言語対応のの方法と確認方法について書きたいと思います。
設定方法
1. pubspec.yamlにpackageを追加
まず、多言語用にパッケージを追加します。
3. messates.dartを作成し、多言語に使うためのgetterを定義する
今後、言語を追加したいときに逐次このファイルに追加します。
6.別言語のarbファイル作成(今回は英語)
intl_ja.arbを参考に別言語のarbファイル((ex) 英語ならintl_en.arb)を作ります。
(messages.dartに新たに追加したgetterから生成したJSONがintl_ja.arbに追加されているので、その部分を別言語のarbファイルにコピーしvalueを翻訳してください(下図の赤枠部分))。
8. main.dartに設定
パッケージと設定ファイルをインポートし、localizationsDelegatesと supportedLocalesをMaterialAppに設定します。
ここで L10c.delegateは今回のローカライズのために 2.で作成したDelegateです。
GlobalMaterialLocalizations.delegate は多分組み込みのローカライズのものらしく日付のフォーマットなどが管理されています。
GlobalWidgetsLocalizationsはウィジェットをローカライズするために必要らしく右から書く言語とかに対応するためにいるみたいです。
GlobalCupertinoLocalizations.delegateはFlutterで多言語対応をした場合にiosで言語を日本語にして、TextFieldで長押しするとクラッシュするのを回避ために設置しました。