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

I18n questions · Android

How do I fix the Android error "is translated here but not found in default locale"? 

The message comes from lint's ExtraTranslation check: a string name appears in a localized folder such as values-de, but no string with that name exists in the default res/values folder. Add the string to res/values/strings.xml, or delete it from the translation files.

Lint rates this as fatal because the string can crash the app. R.string.foo is generated, but getString(R.string.foo) throws Resources.NotFoundException on every device whose language has no translation for it. Fatal issues are checked during release builds (checkReleaseBuilds defaults to true in the Android Gradle plugin), which is why assembleRelease fails while debug builds still run.

Common causes and the matching fix:

  • The key was renamed or removed in values/strings.xml but not in the translations. Remove the stale <string> from each values-xx file, or restore the default string.
  • A translation was added before the source string. Add it to values/strings.xml; the default folder must contain every string the app uses.
  • The default string carries translatable="false" and still has translations. Older lint versions reported this under ExtraTranslation; since lint 3.2 it is the separate Untranslatable warning. Delete the translations or drop the attribute.
  • A library's resources are out of step. The best-known case is auth_client_using_bad_version_title from an old Google Play services library project, where the translated files and the default values file no longer matched after an update. Make sure the library's default and translated resources come from the same version instead of patching them by hand.

Suppress it only when a string is intentionally locale-specific, and keep the suppression on that string:

<resources xmlns:tools="http://schemas.android.com/tools">
    <string name="only_in_german" tools:ignore="ExtraTranslation">Nur auf Deutsch</string>
</resources>

tools:ignore on the <resources> element covers the whole file. Turning the check off for the project, with <issue id="ExtraTranslation" severity="ignore" /> in lint.xml or lint { disable += "ExtraTranslation" } in Gradle, hides real crash risks, so prefer fixing the files. Lint's own description is at ExtraTranslation; the check for the opposite problem is covered in How do I ignore "is not translated in" (MissingTranslation) lint errors in Android?.

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