Lint: Comment ignorer les erreurs «<key> n'est pas traduit en <language>»?

189

Je ne peux pas compiler / déboguer notre application Android, car les fichiers de localisation ne sont pas encore parfaits.

L'outil de validation Lint de mon IDE crée des erreurs disant:

newCardsOrderVals n'est pas traduit en ar, bg, ca, cs

Compiler / installer / exécuter avec Ant fonctionne bien, mais j'aimerais utiliser mon IDE pour faciliter le débogage.

Existe-t-il un moyen de désactiver cette vérification particulière ou, idéalement, d'en faire un avertissement plutôt qu'une erreur?

Je comprends qu'avant la sortie, nous devrons vraiment obtenir les bons fichiers de localisation, mais pour le moment, ce n'est pas une priorité car les écrans eux-mêmes sont modifiés très fréquemment.

Nicolas Raoul
la source
1
Existe-t-il un moyen de configurer toutes les langues marquées comme "non traduites"? J'obtiens des erreurs telles que «es, he et iw». Pourquoi ai-je ces langues? Comment configurer mon application Android pour limiter le jeu à "en" uniquement?
inder
@inder: Peut-être parce que vous avez des répertoires comme "values-he" etc dans votre dossier res /?
Nicolas Raoul
1
Non, je n'ai pas de tels répertoires. Uniquement, valeurs, mise en page et dessinable.
inder
7
es, lui et moi viennent de la bibliothèque du SDK Facebook.
fait le
2
Il s'agit d'un bogue dans Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Réponses:

348

Studio Android:

  • "Fichier"> "Paramètres" et tapez "MissingTranslation" dans le champ de recherche

Éclipse:

  • Windows / Linux: Dans "Fenêtre"> "Préférences"> "Android"> "Vérification des erreurs de charpie"
  • Mac: "Eclipse"> "Préférences"> "Android"> "Vérification des erreurs de charpie"

Trouvez la MissingTranslationligne et définissez-la Warningcomme indiqué ci-dessous:

Traductions manquantes, n'est pas traduit en

Nicolas Raoul
la source
2
... C'est sous "Fenêtre"> "Préférences"> "Android"> "Vérification des erreurs de peluches"
Ollie Bennett
2
C'est utile, mais je n'ai pas eu ce problème depuis très longtemps, jusqu'à ce qu'il apparaisse soudainement. Et je ne sais pas pourquoi.
pktangyue
Merci pour votre précieux message
Pawan asati
FYI sous Android Studio, il est "Fichier"> "Paramètres" et "MissingTranslation" dans le champ de recherche.
Peer
86

Vous pouvez définir l'attribut translatable = "false" sur la définition comme ceci:

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

Pour plus d'informations: http://tools.android.com/recent/non-translatablestrings

efor18
la source
1
J'ai dit "les fichiers de localisation ne sont pas encore parfaits ". Ils se remplissent petit à petit. translatable = "false" empêcherait quiconque de traduire.
Nicolas Raoul
3
Bien que la réponse ne soit pas directement liée à la question, je suppose qu'elle fournit une solution brillante pour les gens comme moi qui ont trouvé ce sujet lorsque Google "comment faire des peluches ne vous inquiétez pas des constantes / paramètres de mon application". Merci, efor18!
aka_sh
83

Pour ignorer cela dans une version gradle, ajoutez ceci à la section Android de votre fichier de construction:

lintOptions {
   disable 'MissingTranslation'
}
Janusz
la source
2
Merci beaucoup, cela m'a littéralement sauvé des jours pour trouver toutes les bonnes chaînes pour la production.
D-Kent
Nice one, this did it
Mirko
Ajouté ceci à mon module d'application l'a trouvé pour moi.
Mercure
23

Cela obligera Lint à ignorer l'erreur de traduction manquante pour TOUTES les chaînes du fichier, mais d'autres fichiers de ressources de chaîne peuvent être vérifiés si nécessaire.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
Tom Bollwitt
la source
C'est probablement la manière la plus correcte de procéder, sans désactiver les peluches pour tout le projet
MatPag
11

Si vous souhaitez désactiver les avertissements concernant les chaînes spécifiques, vous pouvez utiliser les éléments suivants:

strings.xml

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

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

</resources>

Si vous souhaitez avertir sur des chaînes spécifiques au lieu d'une erreur, vous devrez créer une règle Lint personnalisée pour ajuster l'état de gravité pour une chose spécifique.

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

Eduko
la source
1
+1 Bon moyen de le faire une fois pour toutes, afin que tous les développeurs de l'équipe n'aient pas à modifier leurs paramètres IDE. Un moyen d'en faire un avertissement plutôt que de le supprimer complètement?
Nicolas Raoul
Vous pouvez créer une règle Lint personnalisée pour ajuster l'état de gravité d'une chose spécifique. Il y a un exemple ici: tools.android.com/tips/lint-custom-rules
Eduko
9

Insérez dans le lint.xmlfichier ceci:

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

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

Pour plus de détails: Suppression des avertissements de peluches .

Brais Gabin
la source
8

ajoutez les lignes dans votre fichier /res/values.xml dans l'onglet racine des ressources comme ceci:

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

tools: locale définit la langue locale sur l'anglais, pas besoin de traduction ultérieure pour toutes les chaînes de ressources et tous les outils: ignorez que Lint ne contient pas les traductions manquantes des valeurs de la chaîne de ressources.

Purvik Rana
la source
6

Ajoutez ce qui suit à votre fichier gradle dans la section Android

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
la source
5

En plus,

Pas de propriétés dépendant du projet, Préférences Eclipse.
Sous Mac, Eclipse> Préférences

entrez la description de l'image ici

Jinbom Heo
la source
3

Une autre approche consiste à indiquer les langues que vous avez l'intention de prendre en charge et à filtrer le reste en utilisant l'option 'resConfigs' avec Gradle.

Consultez cette autre réponse pour plus de détails

C'est mieux, je pense, car vous n'avez pas à ignorer complètement les erreurs de traduction légitimes pour les langues que vous souhaitez réellement prendre en charge

kip2
la source
1

Beaucoup d'entre eux ont des réponses fonctionnelles différentes, et j'ai aussi les mêmes erreurs de charpie que je fais ignorer en faisant ce qui suit avec eclipse.

  1. cliquez sur Windows
  2. cliquez sur préférences
  3. sélectionnez android> Vérification des erreurs de peluches.
  4. cliquez sur ignorer tout> Appliquer> Ok.

C'est ça.

Raju
la source
2
cela ignorera toutes les préférences de charpie. Pas seulement la traduction manquante
Luciano Rodríguez
1

Ce qui suit a fonctionné pour moi.

  • Cliquez sur Windows
  • Cliquez sur les préférences
  • Sélectionnez Android> Vérification des erreurs de peluches.
  • Recherchez et sélectionnez le contrôle de peluche et
  • Définissez la gravité sur «Ignorer» (en bas à droite)
user4353093
la source