Lint: How to ignore "<key> is not translated in <language>" errors?
EclipseAndroid StudioLocalizationAndroid ResourcesAndroid LintEclipse 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:
Solution 2 - Eclipse
You can set the attribute translatable="false" on the
<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.
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
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.
- click on Windows
- click on preferences
- select android > Lint Error Checking.
- 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)