Localizely logo
  • Home
  • Getting started
  • How it works
  • Pricing
  • FAQ
Sign up

I18n questions · Android

How do I ignore "is not translated in" (MissingTranslation) lint errors in Android? 

Decide first whether the string should be translated at all, then suppress as narrowly as possible. MissingTranslation is a lint check: it compares every string in res/values with each language folder and reports the ones a language lacks. Nothing breaks at runtime, because Android falls back to the default values string when a translation is missing; the check exists so untranslated text does not ship unnoticed. The options, from narrowest to broadest:

Strings that must never be translated (brand names, URLs, format templates) get translatable="false", or live in a file named donottranslate.xml. Lint skips both.

<string name="app_name" translatable="false">Acme</string>

One string that is knowingly untranslated for now. The attribute goes on the string in the default file, because that is where lint reports the issue:

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

Regional override files. Lint counts folders by language, so values-pt-rBR beside a complete values-pt is already fine: the two are checked together as "pt" and the override may contain only the strings that differ. Lint complains when the regional folder is the only folder for its language, or when it is a variant of your default language, such as values-en-rGB next to an English values. For that case, declare the default language on the base file and lint counts the base strings as English:

<!-- res/values/strings.xml -->
<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="en">

The whole project, in a lint.xml file in the module root:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <issue id="MissingTranslation" severity="ignore" />
</lint>

or in build.gradle.kts:

android {
    lint {
        disable += "MissingTranslation"
    }
}

tools:ignore="MissingTranslation" on the <resources> element of the default file sits in between: it covers every string in that file. The broad options hide the problem for every language, including the ones you do intend to finish, so leaving the check on and completing the translations, in a TMS such as Localizely or by hand, is the better long-term fix.

Details: MissingTranslation and configuring lint.

Published Oct 9, 2026 · Markdown version

Related Android localization questions:

Android localization files:

Learn about Android XML string resources
Localizely logo
About
Free tools
Boring stuff
  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • Compare
Newsletter
Copyrights 2026 © Localizely