将Android Studio升级到3.2版后,我在本地化方面遇到了错误

将Android Studio升级到3.2版后,我在本地化方面遇到了错误,android,localization,resources,android-studio-3.2,Android,Localization,Resources,Android Studio 3.2,我有字符串资源: values\strings.xml(包含默认的英文字符串) value de\strings.xml(包含德语字符串) 在我将Android Studio更新到最新版本3.2之前,一切都还不错。 现在lint给了我很多关于默认字符串资源文件(values\strings.xml)的错误: 最好的解决方案是什么?我不想创建另一个文件夹值en,它只包含我的默认值\strings.xml资源的副本…您必须在应用程序级别的gradle中添加禁用“MissingTranslatio

我有字符串资源:

  • values\strings.xml(包含默认的英文字符串)
  • value de\strings.xml(包含德语字符串)
在我将Android Studio更新到最新版本3.2之前,一切都还不错。 现在lint给了我很多关于默认字符串资源文件(values\strings.xml)的错误:


最好的解决方案是什么?我不想创建另一个文件夹值en,它只包含我的默认值\strings.xml资源的副本…

您必须在应用程序级别的gradle中添加
禁用“MissingTranslation”

android {
     defaultConfig {
           //Your config
     }

     lintOptions {
       disable 'MissingTranslation'
   }
}

在lint版本中,添加了3.2新功能。 有关这些功能的更多信息,请访问此参考:

缺少翻译
------------------
摘要:翻译不完整
优先权:8/10
严重性:错误
类别:正确性:消息
如果应用程序具有多个区域设置,则
一种语言也应翻译成所有其他语言。
如果不应转换字符串,则可以添加属性
元素上的translateable=“false”,或者您可以定义所有
名为donottranslate.xml的资源文件中的不可翻译字符串。或者,你
可以使用tools:ignore=“missingtransation”属性忽略问题。
您可以告诉lint(和其他工具)中的默认语言是哪种语言
通过为根目录指定tools:locale=“languageCode”来创建res/values/folder
资源文件中的元素。(工具前缀指的是
名称空间声明http://schemas.android.com/tools.)
根据本文的这一部分,您可以使用以下方法:

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


  2.
  <string name="any_name" translatable="false">anything</string>
1。
...
2.
任何东西

解决方案之一是在build.gradle文件中包含“重新配置”部分,如下所述 只保留我的应用程序正式支持的语言。在那之后,再也没有错误了

对我来说,这将是:

android {
    defaultConfig {
        ...
        resConfigs "de"
    }
}

我喜欢这个解决方案,因为我不想完全禁用“MissingTranslation”功能。

你找到解决方案了吗?
  1.
  <resources
  xmlns:tools="http://schemas.android.com/tools"
  tools:ignore="MissingTranslation">
  ...
  </resources>


  2.
  <string name="any_name" translatable="false">anything</string>
android {
    defaultConfig {
        ...
        resConfigs "de"
    }
}