不要试图重用
不同的页面不要重用一个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”。
但是在乌克兰语版本中R.string.download_file_yes用的是 “Гаразд”,而 R.string.terms_of_use_yes用的是“Так”。
分离
同一页面的string用前缀和注释分离
为每个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
永远不要使用+号来拼接字符串,因为不同的语言语序是不同的。
正确的方式是使用Resources#getString(int id, Object… formatArgs)。
复数
使用 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” 显示成蓝色。
6月19日上午,中国移动联合中兴通讯、京东物流、华为、清研讯科、锐捷网络等产业...
中国的 数据中心 行业虽然获得了长足发展,但世界超大型/大型数据中心的占比当中...
不知道,大家在5G来临的时候,有没有感受到我们自己的4G网络速度有了明显的变化?...
尽管现在各地对5G应用推广力度很大,但是与我们面临的困难和未来的发展需求来比...
美国当地时间周五,iOS开发者向苹果发起集体诉讼,开发者认为苹果滥用垄断权,强...
Google Photos 可以说是世界上最好用的云相册服务,几乎没有之一。 它允许用户以...
移动数据和分析公司 App Annie 透露,TikTok 击败了 Facebook 旗下的三款应用程...
12 月 15 日消息 5G 牌照颁发之后,推动 5G 全面商用就成为运营商的工作重点。这...
微信儿童版要来了?近日,这一事件引发关注。 据南方+记者了解到,微信方面正在进...
近日,创新工场董事长兼CEO李开复博士与阿莱克斯彭特兰教授(Alex Pentland)展开...