在Androidstring中使用可翻译的目的是什么?

什么是可translatable属性,如translatable="false" ,是什么意思?

Solutions Collecting From Web of "在Androidstring中使用可翻译的目的是什么?"

这个属性指出这个属性对于所有的语言环境都是一样的。 为什么它有用?

  1. 本地化文件对于人来说更具可读性并节省时间。
  2. 它告诉Lint工具,一切正常,Android不需要寻找这个资源翻译。

完整的解释: http : //tools.android.com/recent/non-translatablestrings

所以,一般来说,这意味着如果不放这个属性,你应该总是本地化这个资源,否则通过指定这个属性告诉人们和编译器这对于所有的locale是唯一的。

PS相信我,当你的项目变大时,它非常大,非常有帮助。 例如,我目前正在从事键盘项目,并节省大量的时间。

如果你支持多种语言,并且有一些不应该被翻译的string(这意味着所有语言都是相同的),那么你可以使用translatable =“false”

例如:Numbers <string name="account_setup_imap" translatable="false">IMAP</string>

详细说明

我从来没有听说过这个属性,但显然(现在)有一个使用它的原因:从ADT-Dev谷歌组看到这篇文章 。

顺便说一句,我只是试了一下,它在解决这些Android Lint错误。

这只是一个未经validation的猜测:它也可以帮助Android编译器为使用该string的部分生成更高效的代码,因为它可能会优化掉该string的所有资源ID(及其在资源xmls中的dynamic查找)只是内在的价值。

我在官方文档中没有看到任何提及,但它可能仅仅是人类在文件中查看特定string实体不应该被翻译的指标。

如果你有一个你想国际化的Android应用程序,一个常见的策略就是把你的strings.xml文件发送给翻译。 所以那个属性就是他们的标志。