java 界面strings.xml_关于Android strings.xml-你应该了解的几个原则

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

8a3c393985b470c8f56a025380ea2d4d.png

res/values/strings.xml

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

1488479458237879.png

res/values/strings.xml

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

5fe9dbe83a5bca17a959a6add5d4c670.png

res/values/strings.xml

72acc34917bd173ec897794fb00b7a72.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用前缀和注释分离87ad4777f59c7af36e7542102982c41c.pngres/values/strings.xml为每个string添加页面前缀,帮助你立即识别出一个string属于哪个页面。

干净的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

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

1488479654409361.png

res/values/strings.xml

1488479686612772.png

java code

1488479732597410.png

res/values/strings.xml

f256ad9c1d288b27d28a5c10e05d4221.png

res/values-UA/strings.xml

1488479835873932.png

java code

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

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

1488479920451833.png

res/values/strings.xml

1488479958883571.png

java code

ba6c71c54da5b27390c4af08eb9dfb7e.png

res/values/strings.xml

1488480028761963.png

java code

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

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

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

2464f7b743488d0400e182fe17ee0f2f.png

res/values/strings.xml

1488480097109718.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值