Android中國際化與本地化
nternationalization (國際化)簡稱 i18n,因為在i和n之間還有18個字符,localization(本地化 ),簡稱L10n。
一般用 語言_地區的形式表示一種語言,如 zh_CN, zh_TW.
在Android工程的res目錄下,通過定義特殊的文件夾名稱就可以實現多語言支持。比如我們的程序兼容 簡體中文、日文、英文、法文和德文,在values文件夾中建立默認strings.xml,再建立 values-zh-rCN(zh表示中文rCN表示簡體,類似還有美式英語,奧式英語)、values-ja、values、values-fr和 values-de文件夾。(可以用開發工具建:見l)
在每個文件夾里放置一個strings.xml,strings.xml里是各種語言字符串。如果涉及到參 數配置類xml文件夾也要改成xml-zh、xml-ja、xml、xml-fr和xml-de。這樣在android的系統中進行語言切換,所開發的程 序也會跟著切換語言。
在代碼中切換語言:
Resources resources = getResources();//獲得res資源對象
Configuration config = resources.getConfiguration();//獲得設置對象
DisplayMetrics dm = resources .getDisplayMetrics();//獲得屏幕參數:主要是分辨率,像素等。
config.locale = Locale.SIMPLIFIED_CHINESE; //簡體中文
resources.updateConfiguration(config, dm);
補:
添加列表里的,Region和Language,Region值填寫兩位地區代碼(美國為US,中國為ZH,臺灣(繁體)為 TW),Language填寫兩位語言代碼(英語en,中文cn)。有一點要注意,簡繁體中文并不是由Language識別的,不管是簡體還是繁 體,Language都填cn,如果要顯示繁體,Region填為TW就可以了
英文values-en 中文簡體drawable-zh-rCN 中文繁體layout-zh-rTW
Android應用程序的國際化與本地化機制是比較完善的,操作起來也比較方便。我們可以把要用到的所有字符串放在res/values目錄下的 strings.xml文件中,在程序中以R.string.xx的形式來引用它們。把其他語言的字符串放在形如res/values-zh-rCN、 res/values-zh-rTW目錄下的strings.xml文件中,應用程序會根據手機語言的設置情況自動選擇合適的語言。不只是字符串,程序中 所用到的圖片、音頻、布局等資源文件都可以通過這種形式來實現國際化與本地化。以下示例程序實現了字符串和圖片文件的國際化與本地化。
程序目錄如下:
drawable實現圖片資源的國際化,values實現字符串的國際化。zh-rCN表示的是中文-中國內地,zh-rTW表示的是中文-臺灣。hdpi、mdpi、ldpi表示的是不同分辨率的圖片,本例中的drawable實現了語言、地區與分辨率的各種組合。
再來看一看程序的執行情況,分別將模擬器的語言設置成English(United kingdom)、中文(簡體)、中文(繁體)以及朝鮮語,程序運行結果如圖所示。
當把模擬器設置為英語和朝鮮語時,由于程序沒有實現英語和朝鮮語的本地化,所以會使用默認的語言,程序使用的是res/values /strings.xml文件中的字符串和res/drawable-mdpi目錄中的圖片(根據模擬器分辨率的具體設置情況,也可能調用res /drawable-zh-rCN-hdpi或者res/drawable-zh-rCN-ldpi目錄下的圖片)。
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩定
產品高可用性高并發貼心
項目群及時溝通專業
產品經理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽堅持
10年專注高端品質開發