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.


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


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


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'
}

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">

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


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


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.


6

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

    lintOptions {
       disable 'MissingTranslation'
    }

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


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



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.


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)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.