在Android字符串中使用可翻译的目的是什么?

You*_*suf 21 string android

这个translatable属性translatable="false"是什么意思?

Tar*_*kiv 28

此属性指出此属性对于所有语言环境都是相同的.为什么有用?

  1. 本地化文件对人类更具可读性并节省时间.
  2. 它告诉Lint工具一切正常,Android不需要查找此资源转换.

完整说明:http: //tools.android.com/recent/non-translatablestrings

因此,通常,这意味着如果不放置此属性,则应始终本地化此资源,否则通过指定此属性告诉人员和编译器这对所有语言环境都是唯一的.

PS相信我,当你的项目变大时,它非常大,非常有用.例如,我目前正在开发键盘项目,它可以节省大量时间.

  • 好的,*可以*但是不需要*被翻译的字符串呢?例如,徽标在大多数语言中都是相同的,但在某些语言中可能会有所不同。 (2认同)

Vin*_*ins 16

如果您支持多种语言,并且有一些字符串不应被翻译(在所有语言中都相同)那么您可以使用translatable ="false"

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

详细说明


Che*_*mon -3

我在官方文档中没有看到任何对此的引用,但是,它可能只是人们查看文件时的一个指示,即不应翻译该特定字符串实体。

如果您有一个希望国际化的 Android 应用程序,常见的策略是将 strings.xml 文件发送给翻译人员。所以这个属性只是他们的一个标志。