android国际化(多语言)
1.??很大程度上,為什么我們能如此方便的實現國際化、分辨率匹配等??
??? 主要就是得益于 Android 中這種獨特的資源管理方式。程序員的代碼可以不直接和資源發生關系。Android 中,我們通常通過 R 文件提供的索引來間接的引用某一個資源。而如何維護資源索引和真正的資源之間的關系,這個活,卻是 Android 系統來做的。?
??? 這里面就可以大作文章了不是么??
??? 我說過,最了解用戶手機的,不是用戶也不是程序員,而是Android操作系統。它最了解用戶當前使用的是什么語言,最了解用戶當前手機的分辨率是多少,了解電量,了解內存情況...等等。?
??? 既然你對自個的情況這么了解,為什么不自己把所有能完成的事情都做了?不要麻煩程序員好吧?好的,所以 Android 在這方面做得非常優秀。?
??? 基于這個角度,我們要轉換的觀念為:有可能,R 文件中的索引,并非是和資源一對一的。例如我們以前認為它就一定是對應了一張圖片,對應了一個字符串,對應了一個布局文件。?
??? 而很可能,Android 其實會根據用戶當前使用的環境對應幾套方案:例如本文所講的主題,從國際化角度,可能對應中文環境方案,英文環境方案?那么,這時候 R 文件對應的這個資源便不確定起來,當我們通過 R 文件調用一個圖片資源顯示在窗口上時,Android 操作系統會自動根據用戶當前的環境,而選用最合適的圖片(這個挑選過程卻是透明的)。???
?? 程序員可以干預的是:英文環境到底對應哪套方案?中文環境對應到底哪套方案??
?? OK。這就簡單了。?
2. Android 中要實現國際化比較簡單。?
?? 字符串國際化:只要在 res 文件夾下新建對應語言的 values 文件夾就好了,?
?? 如,英語環境下的,文件夾命名為:values-en?
?? 美國英文環境:values-en-rUS?
?? 中文環境為:values-zh?
?? 大陸地區中文環境:?values-zh-cn
?? 在 eclipse 下新建 Android 項目時,會在 res 目錄下自動創建一個默認語言環境的文件夾 : values?
?? 當某一個資源沒有在語言環境的對應的資源集合中找到時,就會使用 values 下的資源。?
?? 若某一個語言環境沒有在項目中定義語言環境,那么也會使用 values 下的資源。?
3. 圖片國際化?
?????? 同理。?
?????? 在 res 下新建 drawable-zh 文件夾,存放中文環境下的圖片?
?????? 新建 drawable-en 作為英語環境下的圖片?
?????? 在 eclipse 下新建 Android 項目時,會在 res 目錄下自動創建三個默認語言環境的文件夾:?
?????? drawable-hdpi?
?????? drawable-ldpi?
??????? drawable-mdpi?
??????? 分別用于存放高、中。低分辨率的圖片。Android 系統會根據手機的分辨率,而自動從不同的對應的某一個文件夾下去加載圖片。?
??????? 同樣,它們也可以國際化,命名規則如:?
??????? drawable-zh-hdpi?
? ? ? ? drawable-en-ldpi?
??????? drawable-en-rUS-mdpi?? ? ? ? ??
????? 使用。在 XML 中需要使用到圖片的地方用表達式: @drawable/icon?
????? 代碼中使用:R.drawable.icon。因為圖片資源同樣也會在 R 文件中生成一個索引
==================================================================
android多國語言文件夾文件匯總如下:
中文(中國):values-zh-rCN
中文(臺灣):values-zh-rTW
中文(香港):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
總結
以上是生活随笔為你收集整理的android国际化(多语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三张图看遍Linux 性能监控、测试、优
- 下一篇: java.util.date转化成jav