Quick Tip: 模板化字符串資源(Formatting Resource Strings)

Android 開發(fā)

原因:

在支持多語言的 App 上常常會出現(xiàn)有些情況很難通過字符串串連 (利用 + 拼接兩個字符串) 的方法解決:

譬如狂魔,App 系統(tǒng)下不同語言的支持下馍惹,常常會有些句子:

英文:

A group of 5 people

中文:

5個人的小組

5 是用戶挑選的數(shù)字,是一個 變量, 這兩個短語雖是同一個意思,但是 5 的位置是不一樣的, 那么用字符串串連的方法來實現(xiàn)這種支持就難了套啤。

不推薦的方式:

int numberOfPeople = 5;
String englishMessage = "A group of" + numberOfPeople + "people";
String chinaMessage = numberOfPeople + "個人的小組";

先定義字符串蚯舱,然后再串連,然后還要監(jiān)測系統(tǒng)用哪種語言佩憾,才決定用那個字符串哮伟。 以后沒增加一種語言支持都要對這段代碼進行調(diào)整,比較復(fù)雜和難以維護

解決方法:

這個時候可以在相應(yīng)語言版本的 strngs.xml 文件下定義個模板:

英文, /values/strings.xml

<string name="message">A group of %d people</string>

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

<string name="message">%d 個人的小組</string>

其中上面的 %d 是一個占位符妄帘,用來標記這里將會填上一個十進制的整型數(shù)字楞黄,還有其它的譬如:%s 代表字符串等等,詳細看這里

代碼, 使用 getString() 套用模板抡驼,手機會根據(jù)語言設(shè)置引用相應(yīng)的 stirngs.xml 的, 有關(guān)這個原理可以看這個帖子 :

int numberOfPeople = 5;
String message = res.getString(R.string.message, numberOfPeople); 

手機語言為 中文 時鬼廓,則 message 的值為:5個人的小組
英文時,則值為:A group of 5 people

建議


在平時寫代碼的時候要留意這樣的情況致盟,即使是 App 不支持多種語言碎税,能夠用模板的盡量用模板,不要把字符串硬編碼在代碼里馏锡,擁抱變化雷蹂,擁抱未來,畢竟未來萬一 App 火了呢

更多:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杯道,一起剝皮案震驚了整個濱河市匪煌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌党巾,老刑警劉巖萎庭,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異齿拂,居然都是意外死亡擎椰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門创肥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來达舒,“玉大人,你說我怎么就攤上這事叹侄」” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵趾代,是天一觀的道長贯底。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么禽捆? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任笙什,我火速辦了婚禮,結(jié)果婚禮上胚想,老公的妹妹穿的比我還像新娘琐凭。我一直安慰自己,他們只是感情好浊服,可當(dāng)我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布统屈。 她就那樣靜靜地躺著,像睡著了一般牙躺。 火紅的嫁衣襯著肌膚如雪愁憔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天孽拷,我揣著相機與錄音吨掌,去河邊找鬼。 笑死脓恕,一個胖子當(dāng)著我的面吹牛思犁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播进肯,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棉磨!你這毒婦竟也來了江掩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乘瓤,失蹤者是張志新(化名)和其女友劉穎环形,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衙傀,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡抬吟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了统抬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片火本。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖聪建,靈堂內(nèi)的尸體忽然破棺而出钙畔,到底是詐尸還是另有隱情,我是刑警寧澤金麸,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布擎析,位于F島的核電站,受9級特大地震影響挥下,放射性物質(zhì)發(fā)生泄漏揍魂。R本人自食惡果不足惜桨醋,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望现斋。 院中可真熱鬧喜最,春花似錦、人聲如沸步责。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔓肯。三九已至遂鹊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔗包,已是汗流浹背秉扑。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工酌畜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擅这,地道東北人狞谱。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓剃幌,卻偏偏與公主長得像包斑,于是被迫代替她去往敵國和親忧吟。 傳聞我的和親對象是個殘疾皇子件蚕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容