iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 9
0
自我挑戰組

Android初學筆記系列 第 9

Day 9 - 支援多國語系

昨天我們把APP改成請使用者輸入名字,今天來加入多語系支援,讓APP有中英文語系。

新增語系

先新增一個繁體中文專用的string.xml檔,請在values上按右鍵,選擇New -> Values resource file
http://ithelp.ithome.com.tw/upload/images/20161224/20103849uFLqentfU9.jpg

輸入要先新增的檔案名稱為strings,下面選擇Locale之後按旁邊的雙箭頭
http://ithelp.ithome.com.tw/upload/images/20161224/20103849dkmFx8rpd7.jpg

找到繁體中文zh-Chinese,旁邊地區選TW,按OK
http://ithelp.ithome.com.tw/upload/images/20161224/20103849oDyT8ZN8rK.jpg

新增完成,旁邊strings檔案會多一個 strings.xml(zh-rTW),還掛著可愛的小國旗
http://ithelp.ithome.com.tw/upload/images/20161224/201038495l1tJ6DN3C.jpg


字串資源

接著把要顯示的文字打到資源檔裡,我們盤點一下目前用到的文字,因為現在都是打中文,所以我們就直接打進strings.xml(zh-rTW)
http://ithelp.ithome.com.tw/upload/images/20161224/20103849WeXMJ2Pom6.jpg

若使用者的手機不是中文的,將不會使用strings.xml(zh-rTW)裡的資源,而是用原本的strings.xml,可以說strings.xml是預設的語言

我們就用英文作為預設,將剛剛的字串們複製貼到strings.xml裡,並改成英文就可以了
http://ithelp.ithome.com.tw/upload/images/20161224/201038497RS357Ksgr.jpg

可以特別注意的是第2行,原本就存在的app_name這個字串,作為APP的名稱我們可以不用多國語言,所以加上translatable=”false”,這樣其他語系就不用新增這個字串。


使用字串資源

介面檔中使用

回到activity_main.xml檔,將原本直接打字的地方改成@string/字串名稱,包括EditText的hint和Button的text
http://ithelp.ithome.com.tw/upload/images/20161224/201038496YzsjLcjys.jpg

右邊預覽視窗選擇Language可以切換成中英文,就可以看到多語系的效果囉
http://ithelp.ithome.com.tw/upload/images/20161224/20103849Dk24gmbCi7.jpg

Java程式中使用

取得字串的方式是getString(R.string.字串名稱),Toast訊息把原本的”您好,”改成字串資源
http://ithelp.ithome.com.tw/upload/images/20161224/201038492aJ7mwX1it.jpg

AlertDialog的部分,怕大家覺得看起來太雜所以另外宣告字串來承接值,再把字串給Dialog
http://ithelp.ithome.com.tw/upload/images/20161224/201038499UAndINKkk.jpg


執行結果

可至模擬器的 設定 -> 語言與輸入設定 改變語言,使用繁體中文時:
http://ithelp.ithome.com.tw/upload/images/20170101/20103849nkn2GloZdi.png

使用其他語言時就會顯示預設的英文
http://ithelp.ithome.com.tw/upload/images/20170101/20103849lW0nVKXglZ.png


上一篇
Day 8 - 訊息元件
下一篇
Day 10 - 第二個Activity
系列文
Android初學筆記30

尚未有邦友留言

立即登入留言