支援不同語言,在不同的國家都可以使用。
在 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 ...