讓 App 支持不同的語言(中文沾凄,法文)

Android 開發(fā)

讓 App 本土化的第一件事就是語言焚廊,知道如何讓 App 支持各種語言會很有幫助,而且可以減少字符串硬編碼

因為文檔解釋得很詳細了撤防,所以下面就跟著 文檔 走一輪虽风,有一些地方做出小小的標識和改動

創(chuàng)建


要怎樣做?按照這個 文檔 里說的

Create Locale Directories and String Files
創(chuàng)建語言區(qū)域目錄和字符串文件

如何做寄月?繼續(xù)照著 文檔

To add support for more languages, create additional values directories inside res/ that include a hyphen and the ISO language code at the end of the directory name. For example, values-es/ is the directory containing simple resources for the Locales with the language code "es". Android loads the appropriate resources according to the locale settings of the device at run time. For more information, see Providing Alternative Resources.

如需添加對更多語言的支持辜膝, 在 res/ 創(chuàng)建另外的 values 文件夾,并在文件夾 (values) 名稱末尾加上連字符 -ISO 語言代碼漾肮。例如厂抖,values-es/ 目錄包含的資源會用于語言代碼為“es”的語言區(qū)域 (這個是西班牙語)Android 根據運行時設備的語言區(qū)域設置加載相應語言的資源**初橘。如需了解詳細信息验游,請參閱提供備用資源

意思是在 res/ 目錄下創(chuàng)建 名稱末尾 不同的 values ,其中目錄末尾 ISO 語言代碼 則對應著相應語言保檐,譬如:values-fr 則代表著手機系統(tǒng)語言為 法語 時讀取的目錄

一旦您決定了為哪些語言提供支持耕蝉,便可創(chuàng)建資源子目錄和字符串資源文件。例如 我要支持 中文法文, 英文(默認):

  1. 創(chuàng)建目錄, 對 res 右鍵-> New -> Android resource directory:


    create dir
  2. 在相應目錄下創(chuàng)建 strings.xml 文件夜只,右鍵目錄-> New -> Values res...ce file


    創(chuàng)建 strings.xml

最后res文件夾里的結構大致上如下:

MyProject/
    res/
       values/
           strings.xml
       values-zh/
           strings.xml
       values-fr/
           strings.xml

將各個語言區(qū)域的字符串值添加到相應文件中垒在。

在運行時,Android 系統(tǒng)會根據當前為用戶設備設置的語言區(qū)域使用相應的字符串資源集的

例如扔亥,以下是一些不同語言下的不同 strings.xml 文件场躯。

英語(默認語言區(qū)域),/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">My Application</string>
    <string name="hello_world">Hello World!</string>
</resources>

中文旅挤,/values-zh/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">我的應用</string>
    <string name="hello_world">你好 世界踢关!</string>
</resources>

法語,/values-fr/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Mon Application</string>
    <string name="hello_world">Bonjour le monde !</string>
</resources>

注:您可以在任何資源類型上使用語言區(qū)域限定符(或任何配置限定符)粘茄,例如签舞,您可以提供本地化版本的可繪制位圖。 如需了解詳細信息柒瓣,請參閱本地化儒搭。

使用定義在 strings.xml 里的字符串


繼續(xù)照著 文檔

You can reference your string resources in your source code and other XML files using the resource name defined by the <string> element's name attribute.

您可以使用由 <string> 元素name 屬性 定義的資源名稱在您的源代碼(java 代碼) 和 其他 XML 文件(布局文件) 中引用您的 字符串資源(定義在 strings.xml 里的字符串)

字符串資源(string resources) 可以理解為 定義在 strings.xml 里的字符串

在您的源代碼中芙贫,可以使用語法 R.string.<string_name> 引用字符串資源(定義在 strings.xml 里的字符串), 有許多方法都接受以這種方式引用字符串搂鲫。

例如,這里取出名字為 "hello_world" 的字符串資源磺平,假設手機語言是中文的魂仍,那么取出的字符串拐辽,按照上面定義好的,就為: 你好 世界擦酌!


// Get a string resource from your app's Resources
//變量 hello 的值為 "你好 世界薛训!"
String hello = getResources().getString(R.string.hello_world);

// Or supply a string resource to a method that requires a string
// textView 會顯示 "你好 世界!"
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

在其他 XML 文件中仑氛,只要 XML 屬性接受字符串值,您就可以使用語法 @string/<string_name> 引用字符串資源闸英。

例如:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

更多


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末锯岖,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子甫何,更是在濱河造成了極大的恐慌出吹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辙喂,死亡現場離奇詭異捶牢,居然都是意外死亡,警方通過查閱死者的電腦和手機巍耗,發(fā)現死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進店門秋麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人炬太,你說我怎么就攤上這事灸蟆。” “怎么了亲族?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵炒考,是天一觀的道長。 經常有香客問我霎迫,道長斋枢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任知给,我火速辦了婚禮瓤帚,結果婚禮上,老公的妹妹穿的比我還像新娘炼鞠。我一直安慰自己缘滥,他們只是感情好,可當我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布谒主。 她就那樣靜靜地躺著朝扼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霎肯。 梳的紋絲不亂的頭發(fā)上擎颖,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天榛斯,我揣著相機與錄音,去河邊找鬼搂捧。 笑死驮俗,一個胖子當著我的面吹牛,可吹牛的內容都是我干的允跑。 我是一名探鬼主播王凑,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼聋丝!你這毒婦竟也來了索烹?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤弱睦,失蹤者是張志新(化名)和其女友劉穎百姓,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體况木,經...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡垒拢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了火惊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片求类。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屹耐,靈堂內的尸體忽然破棺而出仑嗅,到底是詐尸還是另有隱情,我是刑警寧澤张症,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布仓技,位于F島的核電站,受9級特大地震影響俗他,放射性物質發(fā)生泄漏脖捻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一兆衅、第九天 我趴在偏房一處隱蔽的房頂上張望地沮。 院中可真熱鬧,春花似錦羡亩、人聲如沸摩疑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雷袋。三九已至,卻和暖如春辞居,著一層夾襖步出監(jiān)牢的瞬間楷怒,已是汗流浹背蛋勺。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鸠删,地道東北人抱完。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像刃泡,于是被迫代替她去往敵國和親巧娱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,055評論 2 355

推薦閱讀更多精彩內容