謂國際化和本地化呢?就是在資源檔夾res內建立不同國家語言的檔案,這些國家語言的檔案命名是有規定的,具體參見表6-1。當使用者佈建手機的語言時,程式能根據使用者選擇的語言情況,而載入相對應的語言檔案。使用者感受到是程式的本地化,而對於開發人員來講就是程式實現了國際化。
在本例中實現了一個註冊的介面,它可以實現中文簡體和中文繁體的本地化過程,編寫的string.xml和檔案夾命名如表6-1。
表6-1 檔案命名對比表
values/strings.xml 預設
values-zh-rCN/strings.xml 中文(簡體)
values-zh-rTW/strings.xml 中文(繁體)
res檔案夾內的目錄結構6-26所示。
圖6-26 res目錄結構
需要建立三個strings.xml檔案,預設是英文,檔案的位置在chapter6_10/res/values/strings.xml,實現代碼如下。在手機“設定”->“語言和鍵盤” ->“選擇語言”中選擇英文,回到應用介面6-27所示。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">Registration Information</string>
<string name="userName">Username:</string>
<string name="password">Password:</string>
<string name="sex">Sex:</string>
<string name="radioButton01">Male</string>
<string name="radioButton02">Female</string>
<string name="hobby">Hobby:</string>
<string name="checkBox01">Travel</string>
<string name="checkBox02">Read</string>
<string name="checkBox03">Net</string>
<string name="button01">Save</string>
</resources>
圖6-27 工程運行五
簡體中文的檔案位置在chapter6_10/res/values-zh-rCN/strings.xml,實現如代碼清單6-19。在手機“設定”->“語言和鍵盤” ->“選擇語言”中選擇簡體中文,回到應用介面6-28所示。
【代碼清單6-19】 chapter6_10/res/values-zh-rCN/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">註冊資訊</string>
<string name="userName">使用者名稱:</string>
<string name="password">密碼:</string>
<string name="sex">性別:</string>
<string name="radioButton01">男</string>
<string name="radioButton02">女</string>
<string name="hobby">愛好:</string>
<string name="checkBox01">旅遊</string>
<string name="checkBox02">看書</string>
<string name="checkBox03">上網</string>
<string name="button01">儲存</string>
</resources>
圖6-28 工程運行六
繁體中文的檔案位置在chapter6_10/res/values-zh-rTW/strings.xml,實現如代碼清單6-20。在手機“設定”->“語言和鍵盤” ->“選擇語言”中選擇繁體中文,回到應用介面6-29所示。
【代碼清單6-20】 chapter6_10/res/values-zh-rTW/strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, button!</string>
<string name="app_name">chapter6_5</string>
<string name="registerInfo">註冊資訊</string>
<string name="userName">用戶名:</string>
<string name="password">密碼:</string>
<string name="sex">性別:</string>
<string name="radioButton01">男</string>
<string name="radioButton02">女</string>
<string name="hobby">愛好:</string>
<string name="checkBox01">旅遊</string>
<string name="checkBox02">看書</string>
<string name="checkBox03">上網</string>
<string name="button01">儲存</string>
</resources>
圖6-29 工程運行七