android的語(yǔ)言切換2011-04-01 09:49:00| 分類: 工作學(xué)習(xí) |字號(hào) 訂閱 android的語(yǔ)言切換internationalization (國(guó)際化)簡(jiǎn)稱 i18n,因?yàn)樵趇和n之間還有18個(gè)字符,localization(本地化 ),,簡(jiǎn)稱L10n,。 一般說(shuō)明一個(gè)地區(qū)的語(yǔ)言時(shí),用 語(yǔ)言_地區(qū)的形式,,如 zh_CN, zh_TW.各國(guó)語(yǔ)言縮寫:http://www./standards/iso639-2/php/code_list.php,, 國(guó)家和地區(qū)簡(jiǎn)寫:http://www./iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html android 對(duì)i18n和L10n提供了非常好的支持。android沒有專門的API來(lái)提供國(guó)際化,,而是通過(guò)對(duì)不同resource的命名來(lái)達(dá)到國(guó)際化,,同時(shí)這種命名方法還可用于對(duì)硬件的區(qū)分,如不同的新視屏用不同的圖片,。 在eclipse的工程中,,res目錄有默認(rèn)幾項(xiàng)resource,如 drawable,, layout,,menu,,values ,其余還有 res/anim/ 用來(lái)放置動(dòng)畫 ![]()
我們引用這些resource時(shí)候,,在java代碼中是通過(guò)R.resource_type.resource_name的方式來(lái)使用,,如setTitle(R.string.main_title); 還有一種是在xml中直接引用,如 <TextView MCC and MNC,, Language and region, Screen dimensions,, Wider/taller screens,, Screen orientation,Screen pixel density,, Touchscreen type,, SDK version,,也就是說(shuō)通過(guò)手機(jī)當(dāng)前語(yǔ)言區(qū)域,,屏幕的大小,屏幕像素,,以及當(dāng)前android sdk的版本號(hào)來(lái)選擇,。通過(guò)把strings.xml放置在以這些選項(xiàng)命名的文件夾下,Resource類就能正確的裝載所需的字符串,。 我們以不同的local和region來(lái)做一次國(guó)際化,,首先values表示默認(rèn)的字符串,也即當(dāng)Resource找不到匹配的資源時(shí),,默認(rèn)使用values文件夾下的資源,,其余 drawable等資源也是同樣的。 當(dāng)命名這些文件夾的名字時(shí),,不同的選項(xiàng)用-分開,,而且次序必須和 andorid 文檔中table 2 的次序一樣, 詳見http://developer./guide/topics/resources/resources-i18n.html#AlternateResources 文件夾的命名必須都是小寫字符,,否則在一些大小敏感的文件系統(tǒng)中可能會(huì)出錯(cuò),,如果你用大寫,eclipse的adt都會(huì)自動(dòng)報(bào)錯(cuò),。小寫字母r表示region的意思,。 上圖命名了中文簡(jiǎn)體和繁體以及默認(rèn)選項(xiàng),在strings.xml中除了字符串本身不一樣,,xml中定義該字符串的名字,,id都是一樣的,。所以在代碼或者xml中引用該資源時(shí),只要引用名字即可或者id即可,,程序啟動(dòng)時(shí)候Resource類回到相應(yīng)的目錄下去尋找正確的字符串(資源) 語(yǔ)言切換方式: 1,、通過(guò)關(guān)設(shè)置切換 通過(guò)在Settings中設(shè)置locale& Text 我們可以讓Resource類來(lái)選擇相應(yīng)文件夾下的內(nèi)容, 選擇英語(yǔ)時(shí)候結(jié)果如下,,也即選擇了 values下的strings.xml 選擇 chinese(china)時(shí),,也即選了 values-zh-rcn目錄下的strings.xml 選擇 chinese(taiwan)時(shí),也即選了 values-zh-rtw目錄下的strings.xml 其余手機(jī)的選項(xiàng),,像屏幕的像素等都可以建立相應(yīng)得目錄,。 2、通過(guò)代碼切換 Resources resources = getResources();//獲得res資源對(duì)象 Configuration config = resources.getConfiguration();//獲得設(shè)置對(duì)象 DisplayMetrics dm = resources .getDisplayMetrics();//獲得屏幕參數(shù):主要是分辨率,,像素等,。 config.locale = Locale.SIMPLIFIED_CHINESE; //簡(jiǎn)體中文 resources.updateConfiguration(config, dm); |
|
來(lái)自: JUST SO LAZY > 《java\android》