2011年03月07日
海外携帯を日本語化 - Samsung Galaxy 5
こんにちは、Chang@JACCバンコク支部 です。
タイ在住の日本人のみなさん、
5,000バーツほどで日本語メニューの携帯が手に入りますよ~
※2011年9月現在、Samsung Galaxy Mini が Galaxy 5 より画面が広く、値段が同じです!
※2012年10月現在、Samsung Galaxy Y などがお手頃です。
といっても、ほとんどの方がアソークのTimes Square内にある J-Globe さん(2011年6月にプラカノンに移転) で(あるいはMBK4階)「i-Phone」あるいは Sony Erricson をご購入されていると思います。
職場の日本人、ハイソなタイ人女性、在タイ日本人女性の多くが i-Phone を持っているようです。
しかし、既婚現地採用者からすれば、高嶺の花、とても手が出ません。また、私に言わせると
Android と比較して費用対効果が???だと思います(はっきり言って高い、高機能すぎる)。
そこで、ある一定以上の品質、スペックがあり、かつ日本語化が比較的容易な携帯端末を
買い求めることにしました。
先日(2/3-6)、バンコクのクイーンシリキット国際展示場で開催された Mobile Expo 2011で
Samsung Galaxy 5 (型番:GT-I5503)を二台(私と嫁の分)を購入しました。

私たちは、土曜日の朝目星をつけておき、日曜日の夕方に買いに行きました。
値段が下がるのがわかっていたからです。
で、iPhoneは高嶺の花だし、最近急激に販売が伸びているAndroid携帯に焦点を当てました。
そこで候補になったのが、HTC、LG、Samsung、Motorola の携帯です。
最終的には、私の需要(タイ語辞書、日本語タイ語入力、MP3プレーヤー)、品質、予算を満たし、
その中で最もコストパフォーマンスが優れている Samsung Galaxy 5 を選択しました。
それはさておき、Android携帯といえども、東南アジア向けに出荷している製品なので、
内部メモリの都合上、デフォルトで英語、タイ語、ベトナム語、マレーシア語しか選択できません。
他の国にお住いの方も、その周辺諸国の言語しか選択できないようになってると思います。
しかし、そこはAndroid携帯で、ネットの情報を見てみると、すでに先陣を切って日本語化を
なさっている方がいらっしゃいました。
日本国内だと、あまりAndroid携帯が発売されてないにもかかわらず。
(2011/05/27 いつの間にか i-Phone を抜いて出荷台数No.1になっています。スマホのシェア58%)
さて、ここでは、今回日本語化したときの手順をご紹介しておきます。
ここでいう「日本語化」とは、
「端末に最初から導入されているソフトウェアの英語メニュー、メッセージで日本語を表示すべく、
翻訳(日本語リソース)を追加すること」
としています。
「MoreLocale2」を「Androidマーケット」からダウンロードして、「日本語」を選択することで、
日本語メニュー表示ができるアプリもありますが、限定的です。
特に、携帯に最初から入っていたアプリは、ほとんど日本語リソースが入っていません。
ですので、ここでは、これらも完全に日本語化しちゃいます。
↓↓↓ クリックして頂けたら励みになります。宜しくお願いします。
タイ在住の日本人のみなさん、
5,000バーツほどで日本語メニューの携帯が手に入りますよ~
※2011年9月現在、Samsung Galaxy Mini が Galaxy 5 より画面が広く、値段が同じです!
※2012年10月現在、Samsung Galaxy Y などがお手頃です。
といっても、ほとんどの方がアソークのTimes Square内にある J-Globe さん(2011年6月にプラカノンに移転) で(あるいはMBK4階)「i-Phone」あるいは Sony Erricson をご購入されていると思います。
職場の日本人、ハイソなタイ人女性、在タイ日本人女性の多くが i-Phone を持っているようです。
しかし、既婚現地採用者からすれば、高嶺の花、とても手が出ません。また、私に言わせると
Android と比較して費用対効果が???だと思います(はっきり言って高い、高機能すぎる)。
そこで、ある一定以上の品質、スペックがあり、かつ日本語化が比較的容易な携帯端末を
買い求めることにしました。
先日(2/3-6)、バンコクのクイーンシリキット国際展示場で開催された Mobile Expo 2011で
Samsung Galaxy 5 (型番:GT-I5503)を二台(私と嫁の分)を購入しました。

私たちは、土曜日の朝目星をつけておき、日曜日の夕方に買いに行きました。
値段が下がるのがわかっていたからです。
で、iPhoneは高嶺の花だし、最近急激に販売が伸びているAndroid携帯に焦点を当てました。
そこで候補になったのが、HTC、LG、Samsung、Motorola の携帯です。
最終的には、私の需要(タイ語辞書、日本語タイ語入力、MP3プレーヤー)、品質、予算を満たし、
その中で最もコストパフォーマンスが優れている Samsung Galaxy 5 を選択しました。
それはさておき、Android携帯といえども、東南アジア向けに出荷している製品なので、
内部メモリの都合上、デフォルトで英語、タイ語、ベトナム語、マレーシア語しか選択できません。
他の国にお住いの方も、その周辺諸国の言語しか選択できないようになってると思います。
しかし、そこはAndroid携帯で、ネットの情報を見てみると、すでに先陣を切って日本語化を
なさっている方がいらっしゃいました。
日本国内だと、あまりAndroid携帯が発売されてないにもかかわらず。
(2011/05/27 いつの間にか i-Phone を抜いて出荷台数No.1になっています。スマホのシェア58%)
さて、ここでは、今回日本語化したときの手順をご紹介しておきます。
ここでいう「日本語化」とは、
「端末に最初から導入されているソフトウェアの英語メニュー、メッセージで日本語を表示すべく、
翻訳(日本語リソース)を追加すること」
としています。
「MoreLocale2」を「Androidマーケット」からダウンロードして、「日本語」を選択することで、
日本語メニュー表示ができるアプリもありますが、限定的です。
特に、携帯に最初から入っていたアプリは、ほとんど日本語リソースが入っていません。
ですので、ここでは、これらも完全に日本語化しちゃいます。
↓↓↓ クリックして頂けたら励みになります。宜しくお願いします。



おそらく、Samsung Galaxy 5 に限らず、「Galaxy 3」、日本で発売されている「Galaxy S」等にも
Android携帯ならばほぼ適用できるはずです。また、Samsung関連の言語リソース以外は、他の
Android端末にも共通で使えるはずです。
なぜならば、仮にあるキーワードを翻訳しなかった場合、英語のメニューやメッセージが使われる
だけであり、キーワードがないことで何ら障害が発生しないからです。
[2012/03/24 追記]
こんなサイトがあるのですね。
このサイトから日本語リソースを入手できるようです。
日本語入力は、「FreeWnn」とか「Simeji」が有名です。Androidマーケットから入手できます。
「FreeWnn」の方が動作が軽くてお勧めです。
[2012/10/04 追記]
最近は、i-Phone みたいに1フリックで言語切り替えできる入力ソフト Multiling が出てきました。
Google Play のサイトから Multiling を入手できます。
インストールしたい言語のプラグインを続けてインストールしてください。
私は、日本語、英語、タイ語プラグインをインストールしました。
※手順を誤ると最悪端末が動作しなくなる恐れがあります。
くれぐれも申し上げておきますが、自己責任でお願いします。
以下の手順にて、携帯を再起動できなくなっても、当方では責任を負いかねます。
1) 必要ソフトウェア(Android側)
Androidマーケットで、以下のソフトウェアを取得します。
- Universal Androot 1.6.2 Beta (ROOT化するために必要)
- BusyBox installer (必須だと思う)
- Root Explorer (あったら便利)
[2012/03/24 追記]
最近のAndroid携帯は Universal Androot では ROOT化できないようです。
こちらの記事をご覧ください。
Universal Androotで、Androidシステムの管理者権限を取得し、
/system/app/ ディレクトリ、または /system/framework/ ディレクトリ内にある既存アプリを
直接上書きしようという考えです。
特に、/system/framework/ 内にある framework-res.apk、twframework-res.apk の内容に
不備があると、起動できなくなる恐れがあります。
2) 必要ソフトウェア(PC側)
- 7z 4.65
- Java JRE 1.6
- Android SDK r10
- apktool-install-windows-2.2_r01-3.tar.bz2
- apktool1.3.2.tar.bz2
3) 環境設定(PC)
- 環境変数 JAVA_HOME、CLASSPATH、PATH の設定をお忘れなく。
- JAVA_HOME の設定がわからない方は、他のサイトで調べてください。
- apktool.jar のあるディレクトリに CLASSPATH を通します。
- aapt.exe、apktool.bat のあるフォルダ、7z.exe のあるフォルダ、また Android SDK を
インストールしたフォルダ配下の「tools」フォルダに PATH を通します。
※ここで申し上げていることが理解できない方は、失礼かもしれませんが、知識不足により
端末を壊す恐れがあり危険ですので、日本語化を諦めた方がよろしいと思います。
4) パッケージ取得
まずは、日本語化翻訳作業用のフォルダをPC内に作っておきます。
ここでは、仮に「D:\GT-I5503」とします。
4-1) Explorer上で「D:\GT-I5503」フォルダを新規作成する
その後、端末からパッケージを取得します。
4-2) コマンドプロンプトを開きます。
4-3) コマンドプロンプト上で、作業フォルダを「D:\GT-I5503」に変更します。
> D:
> cd \GT-I5503
4-4) 次のコマンドをタイプし、エンターキーを押します。
> adb pull /system/app/
> adb pull /system/framework/ (<-- framework-res.apk、twframework-res.apk)
ここまでで、「D:\GT-I5503」フォルダに、端末に既定で導入されているソフトウェア
パッケージをダウンロードできた状態になります。
5) 共通フレームワークの生成
後でパッケージを圧縮するときに、共通フレームワークを使用することになります。
この段階で、以下のコマンドをタイプして、共通フレームワークを作成しておきます。
> apktool if framework-res.apk
> apktool if twframework-res.apk
6) パッケージ解凍
次のコマンドをタイプしてパッケージを解凍します。
> apktool d パッケージ名.apk
ここで、パッケージ名と同じ名前のフォルダが作成され、この配下にパッケージが
解凍されます。
7) 翻訳作業
解凍後のパッケージは、おおむね以下のフォルダ構成になっていると思います。
<一般パッケージ>
パッケージ名フォルダ
|--- res フォルダ
| |--- values フォルダ
| | |--- arrays.xml
| | |--- plurals.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml (もしあれば)
| | |--- plurals.xml (もしあれば)
| | |--- strings.xml
|--- AndroidManifest.xml
|--- apktool.yml
<framework-res.apk>
framework-res フォルダ
|--- res フォルダ
| |--- raw フォルダ
| | |--- loaderror.html
| | |--- nodomain.html
| |--- raw-ja フォルダ
| | |--- loaderror.html
| | |--- nodomain.html
| |--- values フォルダ
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja-rJP フォルダ
| | |--- strings.xml (←言語設定で「日本語」と表示させるしかけ)
|--- AndroidManifest.xml
|--- apktool.yml
<Settings.apk>
Settings フォルダ
|--- res フォルダ
| |--- values フォルダ
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-nokeys フォルダ
| | |--- strings.xml
| |--- values-ja-nokeys フォルダ (←values-nokeysフォルダをコピーする)
| | |--- strings.xml
| |--- xml フォルダ
| | |--- timezones.xml
| |--- xml-ja フォルダ (←xmlフォルダをコピーする)
| | |--- timezones.xml
|--- AndroidManifest.xml
|--- apktool.yml
6-1) 翻訳作業
基本、上記の太字の arrays.xml、plurals.xml、strings.xml を日本語に翻訳します。
なお、ファイルはすべて「utf-8」で保存する必要があります。
Windows既定の「Shft_JIS」で保存してはいけません。
後の再パッケージ作業でエラーになります。
また、XMLのSTRINGタグに挟まれた英語を単純に和訳するだけにします。
勝手にXMLファイルの文法規則からはずれるような編集をしてしまうと(特に、編集中に
閉じタグの一部を誤って消してしまっている場合が多い)、以下のリソースファイル作成時に
次のようなコンパイルエラーが発生します。
--------------------------------------------------------------------
D:\GT-I5503\Contacts\res\values-ja\strings.xml:706: error: Error parsing XML: mi
smatched tag
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutExce
ption: could not exec command: [aapt, p, -F, C:\Temp\APKTOOL383025271406108628.t
mp, -I, D:\Documents\config\apktool\framework\1.apk, -I, D:\Documents\config\apk
tool\framework\2.apk, -S, D:\GT-I5503\Contacts\res, -M, D:\GT-I5503\Contacts\And
roidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
at brut.androlib.Androlib.buildResources(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\T
emp\APKTOOL383025271406108628.tmp, -I, D:\Documents\config\apktool\framework\1.a
pk, -I, D:\Documents\config\apktool\framework\2.apk, -S, D:\GT-I5503\Contacts\re
s, -M, D:\GT-I5503\Contacts\AndroidManifest.xml]
at brut.util.OS.exec(Unknown Source)
... 7 more
--------------------------------------------------------------------
このエラーが発生した場合、いったん全てのキーワードを別ファイルに退避し、少しずつ
元のファイルにコピーして、間違いの部分を特定していく必要があります。
6-2) framework-res/res/values-ja-rJP/arrays.xml
端末で、「Settings」⇒「Language & keyboard」⇒「Select locale」で日本語の選択が
可能になるようにします。「More Locale 2」のインストールは必要ありません。
以下の内容で保存します。
------------------------------------------------------------------------
<?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>
-------------------------------------------------------------------------
もちろん、文字エンコード「utf-8」で保存することは言うまでもありません。
6-3) Settings/res/values/arrays.xml
そのままだと ロケールの選択画面で Japaneseと表示されてしまうので、
"日本語"と表示させる為に下記の内容を追記します。
----------------------------------------------------------------------------------------------
<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>
----------------------------------------------------------------------------------------------
7) リソースファイル再構築
以下のコマンドをタイプして、リソースファイルを再構築します。
> apktool b パッケージ名 (←拡張子は入力しない)
パッケージ名\build\apk の下に resources.arsc なるリソースファイルが生成されます。
8) 再パッケージ
翻訳して新たに追加した values-ja フォルダが build/apk/res フォルダにないのは、resources.arsc に
まとめられているためです。これを元の apk に「無圧縮で」戻すとほぼ完了です。
普通に apk ファイルを 7-zip で開き resources.arsc をドラッグアンドドロップすると圧縮してファイルを
置き換えてしまうので、コマンドプロンプト上でこの作業を行います。
> 7z.exe u -tzip -mx=0 パッケージ名.apk D:\GT-I5503\パッケージ名\build\apk\resources.arsc
最後の resources.arsc の指定は、フルパスで行います。
9) インストール(PC側)
9-1) 端末へコピー
コマンドプロンプトから、以下のコマンドをタイプします。
> adb push パッケージ名.apk /sdcard
これで、再パッケージしたものが、端末のSDカード上にコピーされます。
9-2) 端末上でインストール
コマンドプロンプトから、端末を操作する次のコマンドをタイプします。
-----------------------------------------------------------------------------------------------------
>adb shell (ここから先は、端末上の操作コマンドをタイプする)
$ su (AndrootでROOT化してあると、管理者になれる)
su
# mount -o remount,rw /dev/block/mtbdlock3 /system
(/system フォルダを書き込み可能モードで再マウント)
# cp /sdcard/パッケージ名.apk /system/app
または、framework-res.apk と twframework-res.apk だけは
# cp /sdcard/パッケージ名.apk /system/framework
(日本語リソースが加わったパッケージに置き換わる)
# sync
-----------------------------------------------------------------------------------------------------
framework-res.apk の構成、文法に誤りがあると、cp して端末を再起動した時点で
起動できなくなることがあります。framework-res.apk は特に注意してください。
10) 最後に
当たり前ですが、デフォルト言語は日本語ではないので、これを端末操作で変更してやる必要があります。
端末の「Setting」アイコンをタップし、「Language & keyboard」⇒「Select locale」で
「日本語」と表示されているはずなので、これを選択する。
これで、はれて日本語表示が可能になります。
参考までに、私が日本語化した際の「strings.xml」「arrays.xml」を集めたものをアップしておきます。
Android SDKの和訳等を参考に、できるだけわかりやすく意訳したつもりです。
使われている場面を何度も見て、違和感を感じる個所は何度となく訂正してきました。
使われている場面を想定できず、和訳しずらいものは、敢えて英語のままにしています。
強引に訳しても、画面にその和訳メッセージが表示されたときに、何のこっっちゃ
わからなくなるのを防ぐためです。
ダウンロードはこちらから
<参考ページ>
・Lowyat.NET, Samsung Galaxy 5 [GT-I5503] V3
・[XPERIA mini]XPERIA X10 mini pro(UK版 2.1)の日本語化を試す!!【準備編】
・[電話] apktoolでapkを弄り回す日々。そのいち
・
以上
Android携帯ならばほぼ適用できるはずです。また、Samsung関連の言語リソース以外は、他の
Android端末にも共通で使えるはずです。
なぜならば、仮にあるキーワードを翻訳しなかった場合、英語のメニューやメッセージが使われる
だけであり、キーワードがないことで何ら障害が発生しないからです。
[2012/03/24 追記]
こんなサイトがあるのですね。
このサイトから日本語リソースを入手できるようです。
日本語入力は、「FreeWnn」とか「Simeji」が有名です。Androidマーケットから入手できます。
「FreeWnn」の方が動作が軽くてお勧めです。
[2012/10/04 追記]
最近は、i-Phone みたいに1フリックで言語切り替えできる入力ソフト Multiling が出てきました。
Google Play のサイトから Multiling を入手できます。
インストールしたい言語のプラグインを続けてインストールしてください。
私は、日本語、英語、タイ語プラグインをインストールしました。
※手順を誤ると最悪端末が動作しなくなる恐れがあります。
くれぐれも申し上げておきますが、自己責任でお願いします。
以下の手順にて、携帯を再起動できなくなっても、当方では責任を負いかねます。
1) 必要ソフトウェア(Android側)
Androidマーケットで、以下のソフトウェアを取得します。
- Universal Androot 1.6.2 Beta (ROOT化するために必要)
- BusyBox installer (必須だと思う)
- Root Explorer (あったら便利)
[2012/03/24 追記]
最近のAndroid携帯は Universal Androot では ROOT化できないようです。
こちらの記事をご覧ください。
Universal Androotで、Androidシステムの管理者権限を取得し、
/system/app/ ディレクトリ、または /system/framework/ ディレクトリ内にある既存アプリを
直接上書きしようという考えです。
特に、/system/framework/ 内にある framework-res.apk、twframework-res.apk の内容に
不備があると、起動できなくなる恐れがあります。
2) 必要ソフトウェア(PC側)
- 7z 4.65
- Java JRE 1.6
- Android SDK r10
- apktool-install-windows-2.2_r01-3.tar.bz2
- apktool1.3.2.tar.bz2
3) 環境設定(PC)
- 環境変数 JAVA_HOME、CLASSPATH、PATH の設定をお忘れなく。
- JAVA_HOME の設定がわからない方は、他のサイトで調べてください。
- apktool.jar のあるディレクトリに CLASSPATH を通します。
- aapt.exe、apktool.bat のあるフォルダ、7z.exe のあるフォルダ、また Android SDK を
インストールしたフォルダ配下の「tools」フォルダに PATH を通します。
※ここで申し上げていることが理解できない方は、失礼かもしれませんが、知識不足により
端末を壊す恐れがあり危険ですので、日本語化を諦めた方がよろしいと思います。
4) パッケージ取得
まずは、日本語化翻訳作業用のフォルダをPC内に作っておきます。
ここでは、仮に「D:\GT-I5503」とします。
4-1) Explorer上で「D:\GT-I5503」フォルダを新規作成する
その後、端末からパッケージを取得します。
4-2) コマンドプロンプトを開きます。
4-3) コマンドプロンプト上で、作業フォルダを「D:\GT-I5503」に変更します。
> D:
> cd \GT-I5503
4-4) 次のコマンドをタイプし、エンターキーを押します。
> adb pull /system/app/
> adb pull /system/framework/ (<-- framework-res.apk、twframework-res.apk)
ここまでで、「D:\GT-I5503」フォルダに、端末に既定で導入されているソフトウェア
パッケージをダウンロードできた状態になります。
5) 共通フレームワークの生成
後でパッケージを圧縮するときに、共通フレームワークを使用することになります。
この段階で、以下のコマンドをタイプして、共通フレームワークを作成しておきます。
> apktool if framework-res.apk
> apktool if twframework-res.apk
6) パッケージ解凍
次のコマンドをタイプしてパッケージを解凍します。
> apktool d パッケージ名.apk
ここで、パッケージ名と同じ名前のフォルダが作成され、この配下にパッケージが
解凍されます。
7) 翻訳作業
解凍後のパッケージは、おおむね以下のフォルダ構成になっていると思います。
<一般パッケージ>
パッケージ名フォルダ
|--- res フォルダ
| |--- values フォルダ
| | |--- arrays.xml
| | |--- plurals.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml (もしあれば)
| | |--- plurals.xml (もしあれば)
| | |--- strings.xml
|--- AndroidManifest.xml
|--- apktool.yml
<framework-res.apk>
framework-res フォルダ
|--- res フォルダ
| |--- raw フォルダ
| | |--- loaderror.html
| | |--- nodomain.html
| |--- raw-ja フォルダ
| | |--- loaderror.html
| | |--- nodomain.html
| |--- values フォルダ
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja-rJP フォルダ
| | |--- strings.xml (←言語設定で「日本語」と表示させるしかけ)
|--- AndroidManifest.xml
|--- apktool.yml
<Settings.apk>
Settings フォルダ
|--- res フォルダ
| |--- values フォルダ
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-ja フォルダ (←valuesフォルダをコピーする)
| | |--- arrays.xml
| | |--- strings.xml
| |--- values-nokeys フォルダ
| | |--- strings.xml
| |--- values-ja-nokeys フォルダ (←values-nokeysフォルダをコピーする)
| | |--- strings.xml
| |--- xml フォルダ
| | |--- timezones.xml
| |--- xml-ja フォルダ (←xmlフォルダをコピーする)
| | |--- timezones.xml
|--- AndroidManifest.xml
|--- apktool.yml
6-1) 翻訳作業
基本、上記の太字の arrays.xml、plurals.xml、strings.xml を日本語に翻訳します。
なお、ファイルはすべて「utf-8」で保存する必要があります。
Windows既定の「Shft_JIS」で保存してはいけません。
後の再パッケージ作業でエラーになります。
また、XMLのSTRINGタグに挟まれた英語を単純に和訳するだけにします。
勝手にXMLファイルの文法規則からはずれるような編集をしてしまうと(特に、編集中に
閉じタグの一部を誤って消してしまっている場合が多い)、以下のリソースファイル作成時に
次のようなコンパイルエラーが発生します。
--------------------------------------------------------------------
D:\GT-I5503\Contacts\res\values-ja\strings.xml:706: error: Error parsing XML: mi
smatched tag
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutExce
ption: could not exec command: [aapt, p, -F, C:\Temp\APKTOOL383025271406108628.t
mp, -I, D:\Documents\config\apktool\framework\1.apk, -I, D:\Documents\config\apk
tool\framework\2.apk, -S, D:\GT-I5503\Contacts\res, -M, D:\GT-I5503\Contacts\And
roidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
at brut.androlib.Androlib.buildResources(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\T
emp\APKTOOL383025271406108628.tmp, -I, D:\Documents\config\apktool\framework\1.a
pk, -I, D:\Documents\config\apktool\framework\2.apk, -S, D:\GT-I5503\Contacts\re
s, -M, D:\GT-I5503\Contacts\AndroidManifest.xml]
at brut.util.OS.exec(Unknown Source)
... 7 more
--------------------------------------------------------------------
このエラーが発生した場合、いったん全てのキーワードを別ファイルに退避し、少しずつ
元のファイルにコピーして、間違いの部分を特定していく必要があります。
6-2) framework-res/res/values-ja-rJP/arrays.xml
端末で、「Settings」⇒「Language & keyboard」⇒「Select locale」で日本語の選択が
可能になるようにします。「More Locale 2」のインストールは必要ありません。
以下の内容で保存します。
------------------------------------------------------------------------
<?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>
-------------------------------------------------------------------------
もちろん、文字エンコード「utf-8」で保存することは言うまでもありません。
6-3) Settings/res/values/arrays.xml
そのままだと ロケールの選択画面で Japaneseと表示されてしまうので、
"日本語"と表示させる為に下記の内容を追記します。
----------------------------------------------------------------------------------------------
<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>
----------------------------------------------------------------------------------------------
7) リソースファイル再構築
以下のコマンドをタイプして、リソースファイルを再構築します。
> apktool b パッケージ名 (←拡張子は入力しない)
パッケージ名\build\apk の下に resources.arsc なるリソースファイルが生成されます。
8) 再パッケージ
翻訳して新たに追加した values-ja フォルダが build/apk/res フォルダにないのは、resources.arsc に
まとめられているためです。これを元の apk に「無圧縮で」戻すとほぼ完了です。
普通に apk ファイルを 7-zip で開き resources.arsc をドラッグアンドドロップすると圧縮してファイルを
置き換えてしまうので、コマンドプロンプト上でこの作業を行います。
> 7z.exe u -tzip -mx=0 パッケージ名.apk D:\GT-I5503\パッケージ名\build\apk\resources.arsc
最後の resources.arsc の指定は、フルパスで行います。
9) インストール(PC側)
9-1) 端末へコピー
コマンドプロンプトから、以下のコマンドをタイプします。
> adb push パッケージ名.apk /sdcard
これで、再パッケージしたものが、端末のSDカード上にコピーされます。
9-2) 端末上でインストール
コマンドプロンプトから、端末を操作する次のコマンドをタイプします。
-----------------------------------------------------------------------------------------------------
>adb shell (ここから先は、端末上の操作コマンドをタイプする)
$ su (AndrootでROOT化してあると、管理者になれる)
su
# mount -o remount,rw /dev/block/mtbdlock3 /system
(/system フォルダを書き込み可能モードで再マウント)
# cp /sdcard/パッケージ名.apk /system/app
または、framework-res.apk と twframework-res.apk だけは
# cp /sdcard/パッケージ名.apk /system/framework
(日本語リソースが加わったパッケージに置き換わる)
# sync
-----------------------------------------------------------------------------------------------------
framework-res.apk の構成、文法に誤りがあると、cp して端末を再起動した時点で
起動できなくなることがあります。framework-res.apk は特に注意してください。
10) 最後に
当たり前ですが、デフォルト言語は日本語ではないので、これを端末操作で変更してやる必要があります。
端末の「Setting」アイコンをタップし、「Language & keyboard」⇒「Select locale」で
「日本語」と表示されているはずなので、これを選択する。
これで、はれて日本語表示が可能になります。

参考までに、私が日本語化した際の「strings.xml」「arrays.xml」を集めたものをアップしておきます。
Android SDKの和訳等を参考に、できるだけわかりやすく意訳したつもりです。
使われている場面を何度も見て、違和感を感じる個所は何度となく訂正してきました。
使われている場面を想定できず、和訳しずらいものは、敢えて英語のままにしています。
強引に訳しても、画面にその和訳メッセージが表示されたときに、何のこっっちゃ
わからなくなるのを防ぐためです。
ダウンロードはこちらから
<参考ページ>
・Lowyat.NET, Samsung Galaxy 5 [GT-I5503] V3
・[XPERIA mini]XPERIA X10 mini pro(UK版 2.1)の日本語化を試す!!【準備編】
・[電話] apktoolでapkを弄り回す日々。そのいち
・
以上
Posted by Chang at 12:30│Comments(6)
│Android携帯
この記事へのコメント
はじめまして。
この度の大洪水についてお見舞い申し上げます。
なんともよぉー言いませんが、早く通常の暮らしに戻れますようにお祈りしております。
さて、初めてコメントさせていただいたのは、今、友人が今週末までタイに行っております。
この度の天災において申し訳ないのですが、拠所ない事情でキャンセルできなかった観光目的です。
そこで、ギャラクシープレーヤーを2台、購入したそうですが、日本語化にとても不安を持っているようです。
そこでお願いがあります。
このようなたいへんな時期ではありますが、彼のギャラクシープレーヤーの1台(自分用)の日本語化に現地でご指導いただけるお時間はございますでしょうか。
お手数おかけしますがどうぞよろしくお願いします。
いそけん
この度の大洪水についてお見舞い申し上げます。
なんともよぉー言いませんが、早く通常の暮らしに戻れますようにお祈りしております。
さて、初めてコメントさせていただいたのは、今、友人が今週末までタイに行っております。
この度の天災において申し訳ないのですが、拠所ない事情でキャンセルできなかった観光目的です。
そこで、ギャラクシープレーヤーを2台、購入したそうですが、日本語化にとても不安を持っているようです。
そこでお願いがあります。
このようなたいへんな時期ではありますが、彼のギャラクシープレーヤーの1台(自分用)の日本語化に現地でご指導いただけるお時間はございますでしょうか。
お手数おかけしますがどうぞよろしくお願いします。
いそけん
Posted by isoken at 2011年11月01日 20:59
いそけんさん
まいどです。
最近、洪水災害でというよりも、プライベートで忙しく、特に今週末(金・土)は山場ですので、
申し訳ありませんが、時間が取れません...
MBK4階で、日本語化をしてくれる携帯ショップがいくつもあります(ギャラクシーが対応しているか
不明ですが)。相談してみてはいかがでしょうか。
友人の方に、以下の文をメールし、現地でプリントアウトして店の人に見せれば通じると思います。
------------
「ผมอยากติดตั้งมือถือเคลื่องนี้ให้มันโชว์เมนูเป็นภาษาญี่ปุ่นนะครับ ที่นี้ทำได้ไหมครับ?」
(日本語でメニューが表示できるように設定したいのですが、こちらでできますか)
「น่าจะต้องเอาไปใส่ Japanese resource เพื่มเข้าไปในเคลื่องนี้ใช่ไหมครับ」
(日本語リソースをこの機種に追加して入れないといけないはずですが。)
------------
そのギャラクシー端末を海外旅行でお使いということでしょうか。
国内使用に関しては、端末に「技術適合マーク」が貼ってあれば、電波法に抵触することは
ありませんが、確かいま、SIMロック解除を受け付けているのはドコモだけでしたよね。
しかも、ドコモメールが使えなくなるとか、あまりメリットがないという声を聞いた記憶があります。
もし、ご自分で上記作業を行う場合、本文でも触れましたが、
「framework-res.apk、twframework-res.apk の strings.xml を編集時に、XMLの文法間違いだけは
絶対に誤りのないよう注意してください。」
ここさえ気を付ければ、あとはトライ&エラーで何とかなります。
以上、アドバイスさせて頂きます。
まいどです。
最近、洪水災害でというよりも、プライベートで忙しく、特に今週末(金・土)は山場ですので、
申し訳ありませんが、時間が取れません...
MBK4階で、日本語化をしてくれる携帯ショップがいくつもあります(ギャラクシーが対応しているか
不明ですが)。相談してみてはいかがでしょうか。
友人の方に、以下の文をメールし、現地でプリントアウトして店の人に見せれば通じると思います。
------------
「ผมอยากติดตั้งมือถือเคลื่องนี้ให้มันโชว์เมนูเป็นภาษาญี่ปุ่นนะครับ ที่นี้ทำได้ไหมครับ?」
(日本語でメニューが表示できるように設定したいのですが、こちらでできますか)
「น่าจะต้องเอาไปใส่ Japanese resource เพื่มเข้าไปในเคลื่องนี้ใช่ไหมครับ」
(日本語リソースをこの機種に追加して入れないといけないはずですが。)
------------
そのギャラクシー端末を海外旅行でお使いということでしょうか。
国内使用に関しては、端末に「技術適合マーク」が貼ってあれば、電波法に抵触することは
ありませんが、確かいま、SIMロック解除を受け付けているのはドコモだけでしたよね。
しかも、ドコモメールが使えなくなるとか、あまりメリットがないという声を聞いた記憶があります。
もし、ご自分で上記作業を行う場合、本文でも触れましたが、
「framework-res.apk、twframework-res.apk の strings.xml を編集時に、XMLの文法間違いだけは
絶対に誤りのないよう注意してください。」
ここさえ気を付ければ、あとはトライ&エラーで何とかなります。
以上、アドバイスさせて頂きます。
Posted by Chang
at 2011年11月02日 02:10

お手数おかけしております。
そして迅速、親切、丁寧なアドバイスありがとうございました。
とても参考になりました。
さっそくいただいた文章を友人に送ってみます。
ありがとうございました。
SIMロックについては、心配ないと思います。
通信回線を使う機能がないそうです。
WiHiのみ対応で、サムスン版Iパッドタッチみたいな製品だそうです。
またわからないことがありましたら、ご指導いただいてもよろしいですか?
どうぞよろしくお願いします。
この度は、本当にありがとうございました。
いそけん
そして迅速、親切、丁寧なアドバイスありがとうございました。
とても参考になりました。
さっそくいただいた文章を友人に送ってみます。
ありがとうございました。
SIMロックについては、心配ないと思います。
通信回線を使う機能がないそうです。
WiHiのみ対応で、サムスン版Iパッドタッチみたいな製品だそうです。
またわからないことがありましたら、ご指導いただいてもよろしいですか?
どうぞよろしくお願いします。
この度は、本当にありがとうございました。
いそけん
Posted by いそけん at 2011年11月02日 16:18
今週からスマホデビューしました。購入したのはHTCワイルドファイヤです。管理人さんのように携帯リテラシを高めたいのですが、どうすれば良いですか?推薦図書等があればご教示ください。
Posted by くんちゃん at 2012年01月20日 17:18
くんちゃんさん、こんにちは。
私は特に携帯リテラシーが高いとも思いませんが、ただ、日本語メニューが欲しかったので、必死に日本語・英語情報を探しました。日本語情報だけだと、あまりにも少なすぎます。
深い情報を入手したい場合、やはり英語情報の方がいいです。(←これがポイントです)
[Samsung cellphone firmware]
http://www.samfirmware.com/
HTC向けの情報なら http://htcdev.com/
[Android development]
http://developer.android.com/index.html
普段はあまり好き好んで読まない英語ですが、異国の地において日本語に飢えている関係で必要に迫られて、必死に英語情報を探しました。
タイでは、デフォルトで日本語メニューが表示される携帯って、i-Phone を始めとしたいくつかの高い(20,000バーツ以上)機種しか存在しないですし、私はアップルのような商売スタイルは嫌いなので、Android を日本語化するしかありませんでした。(BlackBerryは画面が小さいのでパス)
私は特に携帯リテラシーが高いとも思いませんが、ただ、日本語メニューが欲しかったので、必死に日本語・英語情報を探しました。日本語情報だけだと、あまりにも少なすぎます。
深い情報を入手したい場合、やはり英語情報の方がいいです。(←これがポイントです)
[Samsung cellphone firmware]
http://www.samfirmware.com/
HTC向けの情報なら http://htcdev.com/
[Android development]
http://developer.android.com/index.html
普段はあまり好き好んで読まない英語ですが、異国の地において日本語に飢えている関係で必要に迫られて、必死に英語情報を探しました。
タイでは、デフォルトで日本語メニューが表示される携帯って、i-Phone を始めとしたいくつかの高い(20,000バーツ以上)機種しか存在しないですし、私はアップルのような商売スタイルは嫌いなので、Android を日本語化するしかありませんでした。(BlackBerryは画面が小さいのでパス)
Posted by Chang
at 2012年01月21日 13:57

ありがとうございます。いま、パタヤです。じくりよんでみたいです。サンクスアロット!
Posted by くんちゃん at 2012年01月25日 00:47
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。