Vue.jsで作成したプログラムをFlutterに置き換え中。多言語対応も行っていたので併せて移植しているが、
言語切り替え時に設定する各言語の情報が単なるJSONではなく、flutter_localizationsではARBファイル(Application Resource Bundleの略)を前提にしている。
ARBファイルでは配列は利用できないので下記のように見直して読み込めるようにした。
変更前 : {”hoge”:[“A”,”B”,”C”]}
変更後 : {”hoge”: “A:B:C”}
読み込んでから、”:” で文字列分割する。以下のようなコードとなる。
Text(AppLocalizations.of(context)!.hoge.split(‘:’)[0])
また、この各言語のファイルを「flutter pub get」コマンドで適用されるということだったが。
一向に反映されないので「flutter gen-l10n」コマンドを実行して適用されることを確認。
英語や日本語の切り替えはできたが、マイナーな言語はflutter_localizationsでは対応していないことが判明。
対象言語はこちら。最初に調べておけばよかったが別の方法を模索することに…
まだまだ壁は高く立ちはだかるのであった。つづく