2013年2月22日 星期五

[Android]讓你的Android app支援多國語言

首先我們必須了解android專案的結構
res存放app資源,其中包含
layout , drawable , values
而我們的語系檔就是放在valuse的strings.xml裡面
若是英文語系我們會建立一個values-en的資料夾
若是日文可能會是values-ja-rJP
簡體中文的話是values-zh-rCN
繁體中文是values-zh-rTW
靠著切換系統內的系統語系 就會對應到不同的語系顯示語言
用Eclipse新增CN跟TW

首先我們點擊添加Android Xml File按鈕,會出現下麵的介面:
3868029129958697204.png  

輸入檔案名:string.xml,選中Values單選框,並把下麵左清單中的Region添加到左邊的清單裡面,並在Region輸入框裡輸入cn,如下圖

3868029129958697205.png  


這時,上面的消息提示:如果用Region的話,需要使用語言項,和Region一樣,我們把Language也添加到右面的清單裡面,填入zh,如下圖



3868029129958697207.png  
點擊Finish按鈕,資源檔就會建好了,目錄:res\values-zh-rCN(其實上面一大堆操作,就是為生成這個目錄)

3868029129958697209.png  

========================================
多國語系另一張多國語系另一章 (轉載自摩刻部落)

要建立不同的語系檔,首先可以先將 res/values/ 改名成相對應的語系,例如 res/values-en/,再複製資料夾成為 res/values-zh-rTW/,接著只要將裡面的檔案內容改成中文,即可支援兩種語系的內容。
重新建立檔案的方式如下。首先在 res/ 資料夾裡新增 Android XML File,並加入檔案語系資訊:language=zh,region=tw,則系統會自動產生目錄名稱。
參考values目錄名稱:簡體中文=values-zh-rCN、日文=values-ja。


各國語系對照表:
中文(台灣):values-zh-rTW       中文(中國):values-zh-rCN中文(香港):values-zh-rHK英語(美國):values-en-rUS英語(英國):values-en-rGB英文(澳大利亞):values-en-rAU英文(加拿大):values-en-rCA英文(愛爾蘭):values-en-rIE英文(印度):values-en-rIN英文(新西蘭):values-en-rNZ英文(新加坡):values-en-rSG英文(南非):values-en-rZA阿拉伯文(埃及):values-ar-rEG阿拉伯文(以色列):values-ar-rIL保加利亞文: values-bg-rBG加泰羅尼亞文:values-ca-rES捷克文:values-cs-rCZ丹麥文:values-da-rDK德文(奧地利):values-de-rAT德文(瑞士):values-de-rCH德文(德國):values-de-rDE德文(列支敦士登):values-de-rLI希臘文:values-el-rGR西班牙文(西班牙):values-es-rES西班牙文(美國):values-es-rUS芬蘭文(芬蘭):values-fi-rFI法文(比利時):values-fr-rBE法文(加拿大):values-fr-rCA法文(瑞士):values-fr-rCH法文(法國):values-fr-rFR希伯來文:values-iw-rIL印地文:values-hi-rIN克羅里亞文:values-hr-rHR匈牙利文:values-hu-rHU印度尼西亞文:values-in-rID意大利文(瑞士):values-it-rCH意大利文(意大利):values-it-rIT日文:values-ja-rJP韓文:values-ko-rKR立陶宛文:valueslt-rLT拉脫維亞文:values-lv-rLV挪威博克馬爾文:values-nb-rNO荷蘭文(比利時):values-nl-BE荷蘭文(荷蘭):values-nl-rNL波蘭文:values-pl-rPL葡萄牙文(巴西):values-pt-rBR葡萄牙文(葡萄牙):values-pt-rPT羅馬尼亞文:values-ro-rRO俄文:values-ru-rRU斯洛伐克文:values-sk-rSK斯洛文尼亞文:values-sl-rSI塞爾維亞文:values-sr-rRS瑞典文:values-sv-rSE泰文:values-th-rTH塔加洛語:values-tl-rPH土耳其文:values–r-rTR烏克蘭文:values-uk-rUA越南文:values-vi-rVN

而strings.xml的內容呢?
以繁體中文為例 大概會是這樣

?xml version="1.0" encoding="utf-8"?
resources
    string name="sure"確定/string
/resources

輸入完後會在 gen中的R.java裡面 可以在 裡面string那段範圍中找尋 以確定有正確註冊


那要怎麼取用呢???
R.string.sure嗎
不對!這樣只會取得到他對應的值
我今天設完之後 出現的是一堆數字

dialog.setTitle(id+getString(R.string.sure));

這樣之後 dialog的title 會是 id 確定 這樣!!

收工!!!





沒有留言:

張貼留言