原文鏈接:Android strings.xml?—?things to remember
原文作者:Dmytro Danylyk
這篇文章是關(guān)于Android瑣碎的事情,例如strings.xml
不可復(fù)用性
不要復(fù)用不同屏幕的字符串
1.想象一下你在登錄登出界面都有一個(gè)加載對(duì)話框,因此你決定使用同樣的字符串 ?—? R.string.loading

之后如果你想使用另一個(gè)字符串,你必須重寫一個(gè)新的字符串,并修改你的java代碼.如果你一開始就分別使用了兩個(gè)字符串,那么你只需要修改strings.xml文件.

2.你永遠(yuǎn)不知道你的程序可能會(huì)支持哪種語言.也許在某一種語言?你可以在不同的場景使用同樣的文字,但另一種語言可能恰恰相反.


分離性
屬于同一屏幕的字符串通過前綴和注釋分離

1.添加屏幕名稱的前綴有助于立即識(shí)別當(dāng)前字符串屬于哪個(gè)屏幕
2.整潔的string.xml文件有助于維護(hù)和翻譯成其他不同語言 -
為每個(gè)屏幕創(chuàng)建單獨(dú)的strings.xml文件
如果你想,你可以為每個(gè)屏幕創(chuàng)建不同的strings.xml文件.例如setting-strings.xml,profile-strings.xml.但是app通常通常只有10到20個(gè)屏幕.在我看來在每個(gè)語言文件夾下有10-20個(gè)strings.xml文件會(huì)造成巨大的混亂
格式化
使用Resources#getString(int id, Object… formatArgs)格式化字符串
永遠(yuǎn)不要通過+操作符來連接字符串圈暗,因?yàn)樵谄渌Z言中詞語的順序可能有所不同.


正確的方式是使用Resources#getString(int id, Object… formatArgs).



復(fù)數(shù)
為復(fù)數(shù)形式的字符串使用 Resources#getQuantityString (int id, int quantity)


正確的方式是使用Resources#getQuantityString (int id, int quantity):


文字高亮
如果你想改變Textview某些文字的顏色,ForegroundColorSpan永遠(yuǎn)不是最好的選擇.因?yàn)楦吡潦峭ㄟ^索引,對(duì)于多語言app來說這并不安全.最好使用 html font color tags在你的strings.xml*文件.
試想你有文字Discover and play games,而你想讓Discover和play高亮成藍(lán)色

