Lint: How to ignore "<key> is not translated in <language>" errors?

EclipseAndroid StudioLocalizationAndroid ResourcesAndroid Lint

Eclipse Problem Overview


I can't compile/debug our Android app, because the localization files are not perfect yet.

My IDE's validation tool Lint create errors saying:

> newCardsOrderVals is not translated in ar, bg, ca, cs

Compiling/installing/running with Ant works fine, but I would like to use my IDE to ease debugging.

Is there a way to turn off this particular check, or ideally make it a warning rather than an error?

I understand that before release we will really need to get localisation files right, but for the time being it is not a priority as the screens themselves are being modified very frequently.

Eclipse Solutions


Solution 1 - Eclipse

Android Studio:

  • "File" > "Settings" and type "MissingTranslation" into the search box

Eclipse:

  • Windows/Linux: In "Window" > "Preferences" > "Android" > "Lint Error Checking"
  • Mac: "Eclipse" > "Preferences" > "Android" > "Lint Error Checking"

Find the MissingTranslation line, and set it to Warning as seen below:

Missing translations, is not translated in

Solution 2 - Eclipse

You can set the attribute translatable="false" on the definition like this:

<string name="account_setup_imap" translatable="false">IMAP</string>

For more information: http://tools.android.com/recent/non-translatablestrings

Solution 3 - Eclipse

To ignore this in a gradle build add this to the android section of your build file:

lintOptions {
   disable 'MissingTranslation'
}

Solution 4 - Eclipse

This will cause Lint to ignore the missing translation error for ALL strings in the file, yet other string resource files can be verified if needed.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">

Solution 5 - Eclipse

If you want to turn off the warnings about the specific strings, you can use the following:

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

If you want to warn on specific strings instead of an error, you will need to build a custom Lint rule to adjust the severity status for a specific thing.

http://tools.android.com/tips/lint-custom-rules

Solution 6 - Eclipse

Insert in the lint.xml file this:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

For more details: Suppressing Lint Warnings.

Solution 7 - Eclipse

add the lines in your /res/values.xml file in resource root tab like this:

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

tools:locale set the local language to English, no need of language translation later on that for all resource strings and tools:ignore let Lint to isnore the missing translations of the resource string values.

Solution 8 - Eclipse

Add following to your gradle file in android section

    lintOptions {
       disable 'MissingTranslation'
    }

Solution 9 - Eclipse

In addition,

Not project dependent properities, Eclipse Preferences.
In Mac, Eclipse > Preferences

enter image description here

Solution 10 - Eclipse

Another approach is to indicate the languages you intend to support and filter out the rest using the 'resConfigs' option with Gradle.

Check out this other answer for details

This is better, I think, because you don't have to completely ignore legitimate translation mistakes for languages you actually want to support

Solution 11 - Eclipse

You can also put resources which you do not want to translate to file called donottranslate.xml.

Example and explanation: http://tools.android.com/recent/non-translatablestrings

Solution 12 - Eclipse

Many of them has a given a different working answers, and i too got the same lint errors i make it ignore by doing the following with eclipse.

  1. click on Windows
  2. click on preferences
  3. select android > Lint Error Checking.
  4. click on ignore All > Apply > Ok.

Thats it.

Solution 13 - Eclipse

The following worked for me.

  • Click on Windows
  • Click on preferences
  • Select android > Lint Error Checking.
  • Find and select the relevant Lint checking and
  • Set the severity to 'Ignore' (on bottom right)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNicolas RaoulView Question on Stackoverflow
Solution 1 - EclipseNicolas RaoulView Answer on Stackoverflow
Solution 2 - Eclipseefor18View Answer on Stackoverflow
Solution 3 - EclipseJanuszView Answer on Stackoverflow
Solution 4 - EclipseTom BollwittView Answer on Stackoverflow
Solution 5 - EclipseEduardView Answer on Stackoverflow
Solution 6 - EclipseBrais GabinView Answer on Stackoverflow
Solution 7 - EclipsePurvik RanaView Answer on Stackoverflow
Solution 8 - EclipsechzahidView Answer on Stackoverflow
Solution 9 - EclipseJinbom HeoView Answer on Stackoverflow
Solution 10 - Eclipsekip2View Answer on Stackoverflow
Solution 11 - EclipseMichal VicianView Answer on Stackoverflow
Solution 12 - EclipserajuView Answer on Stackoverflow
Solution 13 - Eclipseuser4353093View Answer on Stackoverflow