FlutterでAndroidの日本語フォントが正しく表示されない
特定の文字が中国語フォントになってしまう事象に遭遇。いわゆるCJK問題ですねー。
Flutter and CJK font selection 2 – Tetsuhiro Ueda – Medium にある通り、MaterialApp widgetでLocaleを明示してあげる必要がある模様。全てのAndroid端末で起きるわけじゃないみたいです。
ただ、前述の記事に
The Flutter v0.5.4 do font selection according to the language setting well.
とある通り、0.5.4以上を使う必要があるのですが、現時点のbetaチャンネルの最新版は0.5.1なのですよね。
仕方ないのでdevチャンネルに切り替えましょう。どのチャンネルにどのバージョンが配信されているかは Flutter SDK Archive - Flutter を参考にしてください。
0.5.4以上で試してみたところ、無事日本語フォントで日本語が表示できるようになりました。
ちなみにこのLocale設定、iOSでは端末設定のほうが優先されてしまうようです。Flutterの多言語対応周りはまだまだこれからって感じですかね。正式リリースに向けて成熟していくといいなあ。
参考URL
- Flutter on Androidでフォントが日本語にならないことがある
- 0.5.4リリース前の記事なので状況は異なりますが、背景を理解するのに役立ちました
- flutterでDateTimeとStringの変換方法とTimeZoneとLocale
- Localeについて触れられています
おススメ