天天看點

android本地化

  Android已經設計好了國際化(I18N)和本地化(L10N)的架構,隻要編寫程式時符合這個架構要求,實作程式的本地化并不困難。

下面以HelloAndroid (http://code.google.com/android/intro/hello-android.html中Eclipse SDK自動生成)為例,讨論如何實作HelloAndroid的中文化。

1)檔案src/com/android/hello/R.java中列出了hello 字元串的id:

public final class R {

...

 public static final class string {

        public static final int app_name=0x7f040001;

        public static final int hello=0x7f040000;

    }

}

2)檔案res/values/strings.xml中列出了hello字元串的内容:

 <string name="hello">Hello World, HelloAndroid</string>

3)建立一個新的目錄和新的strings.xml檔案,用來存儲hello字元串的中文翻譯:

res/values-zh/strings.xml:

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">你好,Android</string>

    <string name="app_name">你好,Android</string>

</resources>

4) 修改檔案 src/com/android/hello/HelloAndroid.java,

tv.setText("Hello, Android");改成 tv.setText(R.string.hello);
      

5)編譯helloAndroid項目,設定虛拟機locale為zh-CN後重新啟動emulator。在從eclipse中運作helloAndroid項目,這時,可見中文顯示。

 $./adb shell

#echo zh-CN > /data/locale;stop;sleep 5; start <sdk 1.0>

#setprop persist.sys.language zh;setprop persist.sys.country CN;stop;sleep 5;start <sdk 1.5>