Androidのアプリに日本語リソースが入っていない場合,apktoolを使うと日本語リソースだけを追加することが出来る。
apktoolでapkファイルを作成することは出来るんだけど,これは署名がないapkファイルになってしまう。このままだと端末に入れられない。
そこで署名された元のapkファイルに日本語が入ったリソースファイルを戻してやることによって,端末に入れられるapkファイルに出来る。
ここのサイトから,apktool-install-windows-2.2_r01-3.tar.bz2とapktool1.3.2.tar.bz2をダウンロードする。
これらのファイルを適当な場所に解凍する。
適当なディレクトリを作って,そこで作業をします。 すでにapkをインストールしている場合は,adbコマンドでPCにコピーする。
adb pull /system/app/ adb pull /system/framework/
apkファイルはzip形式でアーカイブされているんで,以下のようにして分解する。 次のコマンドをタイプしてパッケージを解凍します。
adbtool d パッケージ名.apk
パッケージ名と同じ名前のフォルダが作成されて,ファイルが分解されて格納される。
パッケージを再圧縮するときに,共通フレームワークを使用することになる。
前もって,共通フレームワークを用意しておく。
apktool if framework-res.apk
アプリ・ディレクトリのresの中には,valuesとvalues-esとか各言語に翻訳されたリソースが入っているディレクトリある。日本語に対応していればvalues-jaがあるはず。
values-jaディレクトリを新規作成してvaluesフォルダからstrings.xmlと,あればarrays.xmlをコピーして,適当にファイルの中を変更していきます。values/strings.xmlにある項目でvalues-ja/strings.xmlに無い場合は,values/strings.xmlがデフォルトで使用されるようだ。
そのままで良い場合は,行を削除しても問題ない。日本語コードは,UTF8を使用する。
framework-res/res/values-ja-rJP/arrays.xmlを編集して,「Settings」⇒「Language & keyboard」⇒「Select locale」で日本語の選択が出来るようにする。
<?xml version="1.0" encoding="UTF-8"?> <resources> <integer-array name="maps_starting_lat_lng"> <item>35666667</item> <item>139750000</item> </integer-array> <integer-array name="maps_starting_zoom"> <item>5</item> </integer-array> </resources>
Settings/res/values/arrays.xmlを編集して,ロケールの選択画面で「日本語」と表示されるようにする。
<string-array name="special_locale_codes_display_names"> <item>zh_CN</item> <item>zh_TW</item> <item>ja_JP</item> </string-array> <string-array name="special_locale_display_names"> <item>中文(简体)</item> <item>中文(繁體)</item> <item>日本語</item> </string-array>
新しくコメントをつける