最新公告
  • 欢迎您光临AA分享网,一个高级程序员的学习、分享的分享平台!立即加入我们
  • 关于Android strings.xml-你应该了解的几个原则

    英文原文:Android strings.xml — things to remember。 

    不要试图重用

    不同的页面不要重用一个string。

    1. 假设你的登录和注册页面都有一个加载对话框。因为都有加载界面所以你决定使用同一个string-R.string.loading。

    1-JS87DDYrThImLteYAXtFhQ.png

    res/values/strings.xml

    但是说不定什么时候你使用不同的string了,这时你就需要重新创建两个新的string,而且还要修改java代码。如果一开始你就使用两个string的话,你需要修改的就只有strings.xml文件。

    1-36F3gYBBrh0Df8BjfSUW-g.png

    res/values/strings.xml

    2. 你永远不知道你的应用要支持哪些语言。在某一种语言中-或许你可以在不同的上下文中使用同一个词语,但是在另一种语言中很可能不同的上下文需要不同的词语。

    1-gyimVk1AvhWWQ6LF4vxL7A.png

    res/values/strings.xml

    1-hG4uYDhTEIHOyVeU0lRqXw.png

    res/values-UA/strings.xml

    注意这里英语版本的strings.xml中,R.string.download_file_yes 和 R.string.terms_of_use_yes两个string都是同一个单词- “Yes”。

    但是在乌克兰语版本中R.string.download_file_yes用的是 “Гаразд”,而 R.string.terms_of_use_yes用的是“Так”。

    分离

    同一页面的string用前缀和注释分离

    1-i24UBT-ET2iv6Q9UUakC1Q.png
    res/values/strings.xml
    1. 为每个string添加页面前缀,帮助你立即识别出一个string属于哪个页面。

    2. 干净的strings.xml文件可以帮助你轻松维护与翻译成不同的语言-一个一个页面的来。

    为每个页面创建单独的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

    永远不要使用+号来拼接字符串,因为不同的语言语序是不同的。

    1-CY9aQc_Zg8q0Q17_y20MyA.png

    res/values/strings.xml

    1-CMnyPXvHDND8RAFBfceSMQ.png

    java code

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

    1-DSiEeB9gWTwCOJyxzUqMyA.png

    res/values/strings.xml

    1-YFqXBcP_XDswNZwFeXmYOw.png

    res/values-UA/strings.xml

    1-YXwYDDkBkDmopx47uJtR6w.png

    java code

    复数

    使用 Resources#getQuantityString (int id, int quantity) 来处理复数

    永远不要在java代码中解决复数问题,因为不同语言中复数的语法规则是不同的。

    1-4NH4qsPMMSQ70QV8zvOH-A.png

    res/values/strings.xml

    1-WxoCPGta9uGTIoxfmXg3pA.png

    java code

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

    1-_KVd1Fhu4xUIy9cAdL7Acw.png

    res/values/strings.xml

    1-jaGAm1mVsrKUCYH0LBN-_A.png

    注:关于getQuantityString方法请看:Android Quantity Strings 的 getQuantityString方法取值问题 

    java code

    词语高亮显示

    使用html文本来高亮静态词语

    如果你想改变TextView中的某些单词的颜色- ForegroundColorSpan并不总是最佳选择,因为它的高亮是通过索引来完成的,而且在多语言下不安全。最好在 strings.xml文件中使用html的font color标签。

    假设你有一个“Discover and play games.” 的文本。你想让单词 “Discover” 和 “play” 显示成蓝色。

    1--v6s0KtpNaszxun2wITpoQ.png

    res/values/strings.xml

    1-jWwEWf0E9GFE6_hos9zWzw.png

    java code

    注:其实本文的很多观点和这篇文章 不谋而合。

    AA分享网一个高级程序员的学习、分享的IT资源分享平台
    AA分享网-企业网站源码-PHP源码-网站模板-视频教程-IT技术教程 » 关于Android strings.xml-你应该了解的几个原则
    • 262会员总数(位)
    • 5946资源总数(个)
    • 4本周发布(个)
    • 0 今日发布(个)
    • 570稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情