属性translatable ="false"到根<resources>元素?

Adi*_*que 10 android android-resources

我在一个values/fertilizers.xml文件中有一些化学名称字符串:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="grade_dap">Diammonium phosphate - DAP (18:46:00)</string>
    <string name="grade_ssp">Single super phosphate - SSP (00:16:00)</string>
    ...
</resources>
Run Code Online (Sandbox Code Playgroud)

既然因为这个文件中的所有这些字符串都不应该被翻译,我可以将一个translatable="false"属性放到根<resources>元素中,还是必须将它放在所有单独的字符串元素中,如下所示:
<string name="grade_dap" translatable="false">Single super phosphate - SSP (00:16:00)</string>

小智 23

如果您想使用它来避免lint警告,您可以简单地将MissingTranslation属性覆盖它们.

<?xml version="1.0" encoding="utf-8"?>

<resources
  xmlns:tools="http://schemas.android.com/tools"
  tools:ignore="MissingTranslation">

  <string name="grade_dap">Diammonium phosphate - DAP (18:46:00)</string>
  <string name="grade_ssp">Single super phosphate - SSP (00:16:00)</string>
  ...
</resources>
Run Code Online (Sandbox Code Playgroud)


Fel*_*ann 17

参考Android Studio项目网站:

如果您有大量不应翻译的资源,可以将它们放在名为donottranslate.xml文件中,而lint会将所有这些资源都视为不可翻译的资源.

  • 我还在StackOverflow中读到,可以使用donottranslate作为资源前缀,例如donottranslate-fertilizers.xml (5认同)