閱讀572 返回首頁    go 技術社區[雲棲]


Android代碼資源的國際化

internationalization (國際化)簡稱 i18n,因為在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。

一般用語言_地區的形式表示一種語言,如  zh_CN, zh_TW.

 

各國語言縮寫  https://www.loc.gov/standards/iso639-2/php/code_list.php

國家和地區簡寫 https://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html

國家_地區語言速查表https://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html

 

常見的有:

zh_cn: 簡體中文

zh_hk: 繁體中文(中國香港)  

zh_tw: 繁體中文(中國台灣地區)

en-hk: 英語(香港)

en_us: 英語(美國)

en_gb: 英語(英國)

en_ww: 英語(全球)

ja_jp: 日語(日本)

ko_kr: 韓文(韓國)

 

在Android工程的res目錄下,通過定義特殊的文件夾名稱就可以實現多語言支持。比如我們的程序兼容簡體中文、英文,在values文件夾中建立默認strings.xml,再建立values-zh-rCN文件夾。

 

在每個文件夾裏放置一個strings.xml,strings.xml裏是各種語言字符串。如果涉及到參數配置類xml文件夾名稱也要改成xml-zh、xml。這樣在android的係統中進行語言切換,所開發的程序也會跟著切換語言。

 

Java代碼 
  1. Resources resources = getResources();//獲得res資源對象  
  2. Configuration config = resources.getConfiguration();//獲得設置對象  
  3. DisplayMetrics dm = resources .getDisplayMetrics();//獲得屏幕參數:主要是分辨率,像素等。  
  4. config.locale = Locale.SIMPLIFIED_CHINESE; //簡體中文  
  5. resources.updateConfiguration(config, dm);  

-------------------

ABOUT:

通常國際化我們隻要在res/目錄下在重新定義values-國家編號,如values-zh-rCN簡體漢語,values-zh-rTW繁體,values-jp日語等。

(配置選項包括語言代號和地區代號。 表示中文和中國的配置選項是 zh-rCN; 表示英文和美國的配置選項是en-rUS.  表示zh 和 en 表示中文和英文;CN  和 US 表示中國和美國;  前麵的r 是必須的)

  目錄結構如下圖所示:

  這裏我隻在values-zh-rCN作了改動,代碼如下:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, ResourceDemo!</string>

<string name="app_name">ResourceDemo</string>

<string name="land">這是橫屏模式.</string>

<string name="port">這是豎屏模式.</string>

</resources>

  我們運行程序之前,把手機語言改成中文,在settings(設置)->language & keyboards(語言與鍵盤)目錄下,選擇簡體中文,如下圖所示:

  最然在運行上述工程,效果如下:

  這時候我們應用的顯示內容就為中文了,而不去顯示values/strings.xml裏的內容。

原文:https://www.cnblogs.com/bluestorm/archive/2013/04/01/2993554.html

最後更新:2017-04-03 18:51:45

  上一篇:go 下載並同步 Google Fonts 裏的字體到你的電腦
  下一篇:go 挑戰大數據 淺析NoSQL技術