是否可以使用build.gradle将
答案 0 :(得分:2)
Android 的gradle插件不支持
您无法在translatable=false
中添加gradle file
。
答案 1 :(得分:0)
实现目标的方法很少。第一种方法是忽略缺失的翻译,因此您根本不需要translatable
属性。您可以使用XML忽略它:
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation" > <!--this line-->
<!-- your strings here; no need now for the translatable attribute -->
</resources>
或使用gradle选项:
android {
lintOptions {
disable 'MissingTranslation'
}
}
第三个选项是通过gradle替换任何源文件中的行来预处理资源:
在构建变体中:
applicationVariants.all { variant ->
if (variant.name.toLowerCase().contains("nuset")) {
variant.mergeResources.doLast {
def dir = new File("${buildDir}/intermediates/res/merged/${variant.dirName}")
println("Resources" + dir)
dir.eachFileRecurse { file ->
if (file.name.endsWith(".xml")) {
String content = file.getText('UTF-8')
if (content != null && content.contains('<string name="app_name">')) {
println("Replacing app name in " + file)
content = content.replace('<string name="app_name">', '<string name="app_name" translatable="false">')
file.write(content, 'UTF-8')
}
}
}
}
}
}
所以它会将所有<string name="app_name">
替换为<string name="app_name" translatable="false">
而不是原始来源,而是替换为合并(准备打包)来源