👻

Flutter on Androidでフォントが日本語にならないことがある

2020/10/01に公開

CJK統合漢字というものがあり、日本語や中国語で使われている「同じ漢字」を1つの文字として割り当てられています。文字は同じですが、言語によって形が違うので、言語の設定に応じてフォントを適切に選ぶ必要があります。

from: Wikipedia
aa

ところが Flutter Android では言語とロケールが "en-US" 固定になっているので、Android の設定で「日本語」にしていても参照されず、一部の機種では中国語フォントが使われてしまうようです。

システムのロケールの設定を見るような Pull Request を作った のですが、残念ながらマージされませんでした。現在は Issue https://github.com/flutter/flutter/issues/12630 待ちの状態です。

応急処置として、前述のPRをマージしたエンジンを使うか、
ファイル https://github.com/flutter/engine/blob/master/runtime/platform_impl.cc
"en-US" になっている箇所を "ja-JP" にしてエンジンをビルドし、アプリのビルド時に使うかすれば、日本語優先になります。

この記事はQiitaの記事をエクスポートしたものです

Discussion