前回は.javaに置き換えるリソースの内容を書き込む方法を使いましたが、翻訳に使おうとするといちいち変更した部分を追加しないといけないので面倒です。
なので、LBE Security Master – Translation Internationalのソースをベースとしてres/values-ja/strings.xmlを書き換えるだけですむようにしたいと思います。
1.準備(アプリ名/パッケージ名の変更)
まずServiceMenuTranslateのソースをこのページからダウンロード(Download ZIPボタン)して解凍します。
前回と同じくアプリ名とパッケージ名を変更します。
AndroidManifest.xmlを開き、
package=”com.wedy.servicemenu”
のcom.wedy.transnovaをパッケージ名にしたい好きな英数字に変更します。(jp.android.mymoduleなど)
android:versionCode=”1″
android:versionName=”1.0″
の二つはバージョン情報で、アプリを更新するときは必ずandroid:versionCodeを以前の数字より大きくしないといけません。
android:versionNameのほうはユーザーがわかりやすいようにつけるバージョン名なので何でもいいです。
次に、assetsフォルダ内のxposed_initをテキストファイルとして開きます。
com.wedy.servicemenu.translate.Translate_MAIN
となっているので、「com.wedy.servicemenu」の部分をAndroidManifest.xmlで入力したパッケージ名にしてください。
例: jp.android.mymodule.translate.Translate_MAIN
srcフォルダの中はcom→wedy→servicemenu、とパッケージ名をピリオドで分けたフォルダ名になっているので、これも同じく
AndroidManifest.xmlで入力したパッケージ名をピリオドで分けた形にしてそれぞれ変更します。
最後に、srcフォルダの一番奥にあるTranslate_MAIN.javaをテキストファイルとして開き、
package com.wedy.servicemenu.translate;
をAndroidManifest.xmlで入力したパッケージ名に”translate”をつけたものに変更します。
例: package jp.android.mymodule.translate;
これでパッケージ名の変更ができました。
2. 変更するリソースの指定
続いてXposedモジュールの核となるTranslate_MAIN.javaの中身を書き換えます。
if (!resparam.packageName.equals(“com.sonyericsson.android.servicemenu”))
の”com.sonyericsson.android.servicemenu”で改変するリソースのあるパッケージを指定しています。
これを書き換えたいアプリのパッケージ名に変更してください。
今回はこれを編集するだけで、あとは/res/values-ja/strings.xmlに翻訳する文字列を入力すれば完了です。
もしarrays.xmlを翻訳しない場合は
try{
fields = R.array.class.getFields();
for(final Field field : fields) {
String name = field.getName(); //name of string
try{
int id = field.getInt(R.array.class); //id of string
try { resparam.res.setReplacement(resparam.packageName, “array”, name,modRes.getStringArray(id)); } catch(RuntimeException e) { };
}catch (Exception ex) {
//Simply ignore …
}
}
} catch(RuntimeException e) { };
を削除してください。
3. モジュールの名前と説明を入力
/res/values/strings.xml
にある
<string name=”app_name”>Service Menu Translate</string>
<string name=”app_desc”>Translate Service Menu</string>
を 自分のモジュールの名前と説明に書き換えます。
<string name=”app_name”>はモジュール名、<string name=”app_desc”>はXposedインストーラのモジュールリストで表示する説明です。
/res/values-ja/strings.xmlにもコピペして翻訳すれば日本語環境での表示を変えられます。
/res/drawable/ic_launcher.pngはアプリアイコンです。
後はEclipseなどでビルドすればXposedモジュール作成は完了です。