本文主要讲解Android开发中常见的strings.xml的使用技巧。html
原文地址java
笔者的Android系列文章android
不要复用不一样页面上的字符串git
1.假设你如今在Sign In与Sign Up两个界面上都设置了一个加载提示框,由于两个都是用于提示正在加载中的,所以你打算使用相同的提示语 —— R.string.loading
github
不事后来PM说这样实在太不友好了,所以你打算用两个更具体点的提示语来代替,所以你将你的strings.xml
修改成了:字体
2.对于一个国际化的项目,你并不知道应用最后须要支持多少种语言,可能你须要在某些语言中表述某些情景是相同的词汇,而某些语言中某些情景压根不一样,譬如:spa
注意,在英文版本中的strings.xml中对于R.string.download_file_yes 与 R.string.terms_of_use_yes 都使用了Yes,而Ukrainian版本中则是两个单词。code
对于相同页面中的字符串之前缀与注释分割orm
1.添加前缀到字符串上有助于辅助快速地识别字符串是属于哪一个页面的。xml
2.清晰的字符串的区分也有助于将来对国际化的支持,能够按照页面来逐个地进行多语言支持。
使用 Resources#getString(int id, Object...formatArgs) 来格式化字符串
尽可能避免使用+
来链接字符串,由于在不一样的语言里对于词汇的划分是不一致的。
正确的方法是使用:Resources#getString(int id, Object… formatArgs).
使用
Resources#getQuantityString (int id, int quantity)
来处理复数字符串
尽可能不要在Java代码中判断是否须要使用复数表述,一样是由于不一样的语言对于复数表述的文法规则是不同的。
正确的方法是使用Resources#getQuantityString (int id, int quantity)
来进行处理:
使用HTML文法规范来进行单词高亮
若是咱们但愿在TextView中修改一些单次的颜色,可能ForegroundColorSpan
不必定是最佳的选择,一样是由于基于下标的高亮策略可能在不一样的语言中出现问题。最好的呢,也仍是使用HTML的字体颜色标签进行控制,譬如你但愿在Discover and play games
这一段话中须要将Discover
与play
进行高亮展现: