Android Lint: how to ignore missing translation warnings in a regional locale string file that purposely only overrides some default translations?

Steveo picture Steveo · Aug 14, 2013 · Viewed 25k times · Source

Is it possible to translate some strings, but not all, in a separate resource file without Lint complaining about MissingTranslation?

For example: my app's strings are all in res/values/strings.xml. One of the strings is

<string name="postal_code">Postal Code</string>

Since "postal code" is usually called "zip code" in the US, I want to add another resource res/values-en-rUS/strings.xml with contents:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="postal_code">Zip Code</string>
</resources>

However, Lint complains about other strings in values/strings.xml but not in values-en-rUS/strings.xml

I realize you can suppress the warnings by specifying tools:ignore in values/strings.xml. But this is undesirable because the Lint warning is actually useful when translating to another language.

Instead, is it possible to suppress the warning in the values-en-rUS/strings.xml file, as in, telling Lint not to use that file as criteria when looking for missing translations?

Answer

Nicks picture Nicks · Sep 20, 2015

A nice way to disable MissingTranslations check is to add the option in module specific build.gradle file .

android {

    lintOptions{
        disable 'MissingTranslation'
    }

    //other build tags
}

If the strings are not present in locale specific Strings file, it will take the strings from the default file which generally is strings.xml.