SyntaxHighlighter

2012/08/08

Galaxy Nexusのフォント入れ替え

先日セットアップしたGalaxy Nexus (docomo SC-04D) ですが、ロケールが日本語だと無事に日本語フォントになっていました。それでそのままにしてしまっていたのですが、後日ロケールを英語に戻すと日本語が中華フォントで表示されていることに気が付きました。いつのまにか、ロケールでフォントの選択順序が決まっているご様子。

日本語のフォントファイル自体は導入されているようなので、設定ファイルを見てみます。すると
  • /etc/system/fallback_fonts.xml
  • /etc/system/fallback_fonts-ja.xml
という二つのファイルがインストールされていることに気が付きました。最後の'-ja'はロケールを見て読むファイルを切り替えているとみました。

違いは日本語フォントの出現順番だけです。ここを変えてしまえば、日本語フォントが優先されそうです。


単純にデフォルトのファイルを日本語ロケールのファイルで上書きしようとも思いましたが、実際には英語(と日本語)以外のロケールは使いません。そこで、英語ロケールのファイルを作ってしまえばいいと思いつき、
$ adb shell
$ cd /system/etc
$ su
# mount -o remount,rw /dev/block/platform/omap/omap_hsmmc.0/by-name/system /system
# ln -s fallback_fonts-ja.xml fallback_fonts-en.xml
として、シムリンク(ショートカット)を作り、リブートします。ここでコピーを作らなかったなかったのは、日本語設定のfallback_fonts-ja.xmlにアップデートが入った場合に英語ロケール時にも自動的に適用されるようにしたかったからです。

なお、この手順はroot化が必要です。ルート化については、セットアップメモをご参照下さい。


最後に、このようにフォント設定ファイルを読む特殊処理がデフォルトで有効になっているのは日本語だけです。シリコンバレーでご活躍・ご尽力されている日本のエンジニアの方々の並々ならぬ努力を感じ、それに対し感謝致します。

0 件のコメント: