不要试图重用
不合的页面不要重用一个string。
1.假设你的登录和注册页面都有一个加载对话框。因为都有加载界面所以你决定应用同一个string-R.string.loading。
然则说不定什么时刻你应用不合的string了,这时你就须要从新创建两个新的string,并且还要修改java代码。如不雅一开端你就应用两个string的话,你须要修改的就只有strings.xml文件。
2. 你永远不知道你的应用要支撑哪些说话。在某一种说话中-或许你可以在不合的高低文中应用同一个词语,然则在另一种说话中很可能不合的高低文须要不合的词语。
留意这里英语版本的strings.xml中,R.string.download_file_yes 和 R.string.terms_of_use_yes两个string都是同一个单词- “Yes”。
精确的方法是应用Resources#getString(int id, Object… formatArgs)。
干净的strings.xml文件可以赞助你轻松保护与翻译成不合的说话-一个一个页面的来。
然则在乌渴攀兰语版本中R.string.download_file_yes用的是 “Гаразд”,而 R.string.terms_of_use_yes用的是“Так”。
分别
同一页面的string用前缀和注释分别
为每个string添加页面前缀,赞助你急速辨认出一个string属于哪个页面。
为每个页面创建零丁的strings.xml 文件
如不雅你想为每个页面创建一个 strings.xml文件,可以如许定名:settings-strings.xml, profile-strings.xml。然则一个app平日有10到20个页面。所以每一个说话目次下都邑有10到20个strings.xml文件,小我认为这带来的是纷乱。
Format格局化
应用 Resources#getString(int id, Object… formatArgs) 来格局化 strings
永远不要应用+号来拼接字符串,因为不合的说话语序是不合的。
应用 Resources#getQuantityString (int id, int quantity) 来处理复数
永远不要在java代码中解决复数问题,因为不合说话中复数的语律例则是不合的。
精确的方法是应用Resources#getQuantityString (int id, int quantity)。
注:关于getQuantityString办法请看:Android Quantity Strings 的 getQuantityString办法取值问题
词语高亮显示
复数
应用html文本来高亮静态词语
如不雅你想改变TextView中的某些单词典色彩- ForegroundColorSpan并不老是最佳选择,因为它的高亮是经由过程索引来完成的,并且在多说话下不安然。最好在 strings.xml文件中应用html的font color标签。
假设你有一个“Discover and play games.” 的文本。你想让单词 “Discover” 和 “play” 显示成蓝色。
推荐阅读
优雅的开发Swift和Objective-C混编的Framework
在SwiftSource.swift中,增长一个类, 媒介为什么要写如许一篇文┞仿,因为昨天和一个同伙评论辩论到Swift和Objective C若何混淆开辟Framework,半途发清楚明了很多有意思的坑。用Swift封装>>>详细阅读
本文标题:关于Android strings.xml-你应该了解的几个原则
地址:http://www.17bianji.com/lsqh/34659.html
1/2 1