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

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

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


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

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


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



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


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


文字高亮
如果你想改變Textview某些文字的顏色,ForegroundColorSpan永遠不是最好的選擇.因為高亮是通過索引,對于多語言app來說這并不安全.最好使用 html font color tags在你的strings.xml*文件.
試想你有文字Discover and play games,而你想讓Discover和play高亮成藍色

