Android國際化入門

2021-08-19 20:25:35 字數 2976 閱讀 6543

支援不同語言,在不同的國家都可以使用。

在 android 開發規範中,我們一般不建議在**或者布局檔案中 hard code 我們 string 字串,而是需要將這些字串放在單獨的 string.xml 檔案。

在 res/ 檔案中建立對應國家或者地區資源檔案,具體如下

res/value-iso語言**

本文演示的是中文簡體和繁體的國際化,所以下面展示的是中國台灣,香港繁體和中文簡體。

預設的 res/value/strings.xml

>

name

="text"

>

紙短情長-預設string

>

resources

>

res/value-zh-rhk/strings.xml

>

name

="text"

>

紙短情長-hkstring

>

resources

>

res/value-zh-rtw/strings.xml

>

name

="text"

>

紙短情長-twstring

>

resources

>

android:id

="@+id/text"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:text

="@string/text"

="parent"

="parent"

="parent"

="parent"

/>

在這裡調節不同的語言環境就可以看到載入不同的資源檔案了。

本地的語言環境是簡體,但是我們在需要在應用動態讀取繁體資源。這種操作意味著去更新應用的 configuration 配置資訊。

**注意:**當修改 configuration 之後,需要呼叫activity#recreate() 方法重新建立 activity 。

/**

* 簡體轉繁體

* * @param view

*/public

void

s2t(view view)

/**

* 繁體轉簡體

* * @param view

*/public

void

t2s(view view)

一般的應用在開發初期只會針對國內使用者進行開發,也就是一般不會去做國際化,當我們應用發展到一定的規模之後就需要往海外市場拓展。

下面就會有乙個這樣需求,就是在當前的簡體中文版基礎上開發乙個正體中文版。需要國際化,就需要解決以下幾個問題:

因為時間比較趕,無法讓服務端去修改介面,所以只能在客戶端獲取到介面資料之後,在進行簡繁體轉換。

因為專案使用是 okhttp 網路請求框架,因此我們使用***的方式攔截返回的響應 response 物件,修改返回內容來實現介面資料國際化。

注意在讀取 final string content = response.body().string(); 之後,對應的流會被關閉,那麼這時上層獲取到 response 之後,在呼叫 body().string()就會報錯,因此我們在讀取資料,並轉化為繁體之後,需要構造乙個新的 responsebody 給 response 即可。

public

class

******2traditionchineseinterceptor

implements

interceptor

}catch

(exception e)

//構造乙個新的responsebody,因為 response.body().string() 呼叫之後會把流關閉,因此這裡要新建。

Android之國際化

國際化 1.記得我在 我的第乙個android 程式,基於intent 的元件互動機制 在分析r 檔案和文章最後,有透露過這種機制的原理和好處。很大程度上,為什麼我們能如此方便的實現國際化 解析度匹配等?主要就是得益於android 中這種獨特的資源管理方式。程式設計師的 可以不直接和資源發生關係。...

Android 國際化文案判斷

判斷是否存在映象 public static boolean isrtl 判斷字串開頭是不是映象語言字元 public static boolean stringstartisrtlcharacter string string char charac string.charat 0 charact...

android字串國際化

1 在values資料夾下建立不同國家對應的資料夾,然後在這些資料夾下面定義不同國家的字串檔案,檔名隨意,但是conectado屬性名要一致。就是connected名字要一致conectado這個名字是不同國家的語言。android多國語言資料夾檔案彙總如下 中文 中國 values zh rcn ...