Lint: Come ignorare gli errori "<key> non tradotto in <language>"?


189

Non riesco a compilare / eseguire il debug della nostra app Android, perché i file di localizzazione non sono ancora perfetti.

Lo strumento di convalida del mio IDE Lint crea errori dicendo:

newCardsOrderVals non è tradotto in ar, bg, ca, cs

Compilare / installare / eseguire con Ant funziona bene, ma vorrei usare il mio IDE per facilitare il debug.

C'è un modo per disattivare questo particolare controllo o idealmente renderlo un avviso piuttosto che un errore?

Comprendo che prima del rilascio avremo davvero bisogno di ottenere i file di localizzazione giusti, ma per il momento non è una priorità poiché gli schermi stessi vengono modificati molto frequentemente.


1
C'è un modo per configurare quali lingue sono contrassegnate come "non tradotte?" Ottengo errori come "es, lui e iw". Perché ottengo quelle lingue? Come configuro la mia app Android per limitare il set solo a "en"?
inder

@inder: Forse perché hai cartelle come "valori-lui" ecc nella tua cartella res /?
Nicolas Raoul,

1
No, non ho nessuna di queste directory. Solo valori, layout e disegno.
inder

7
es, lui e io veniamo dalla libreria SDK di Facebook.
madej

2
Questo è un bug in Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Risposte:


348

Android Studio:

  • "File"> "Impostazioni" e digita "MissingTranslation" nella casella di ricerca

Eclisse:

  • Windows / Linux: in "Finestra"> "Preferenze"> "Android"> "Controllo errori lanugine"
  • Mac: "Eclipse"> "Preferenze"> "Android"> "Controllo errori lanugine"

Trova la MissingTranslationlinea e impostala Warningcome mostrato di seguito:

Traduzioni mancanti, non tradotte in


2
... È sotto "Finestra"> "Preferenze"> "Android"> "Controllo errori lanugine"
Ollie Bennett,

2
È utile, ma non ho avuto questo problema per molto tempo, fino a quando non è apparso all'improvviso. E non so perché.
pktangyue,

Grazie per il tuo prezioso post
Pawan asati,

Cordiali saluti in Android Studio è "File"> "Impostazioni" e "Traduzione mancante" nella casella di ricerca.
pari

86

È possibile impostare l'attributo translatable = "false" sulla definizione in questo modo:

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

Per maggiori informazioni: http://tools.android.com/recent/non-translatablestrings


1
Ho detto "i file di localizzazione non sono perfetti ancora ". Si riempiono a poco a poco. translatable = "false" impedirebbe a chiunque di tradurre.
Nicolas Raoul,

3
Sebbene la risposta non sia direttamente correlata alla domanda, immagino, fornisca una soluzione brillante per persone come me che hanno trovato questo argomento quando Google "come fare lanugine non preoccuparti delle costanti / dei parametri della mia app". Grazie, efor18!
aka_sh,

83

Per ignorarlo in una build gradle, aggiungilo alla sezione Android del tuo file build:

lintOptions {
   disable 'MissingTranslation'
}

2
Grazie mille, mi ha letteralmente risparmiato giorni per trovare tutte le stringhe corrette per la produzione.
D-Kent,

Bello, lo ha fatto
Mirko,

Aggiunto questo al mio modulo app lo ha sostituito per me.
Mercurio,

23

Questo farà sì che Lint ignori l'errore di traduzione mancante per TUTTE le stringhe nel file, ma se necessario è possibile verificare altri file di risorse delle stringhe.

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

Questo è probabilmente il modo più corretto di procedere, senza disabilitare la lanugine per tutto il progetto
MatPag

11

Se si desidera disattivare gli avvisi relativi alle stringhe specifiche, è possibile utilizzare quanto segue:

strings.xml

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

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

</resources>

Se si desidera avvisare su stringhe specifiche anziché su un errore, sarà necessario creare una regola Lint personalizzata per regolare lo stato di gravità per una cosa specifica.

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


1
+1 Un buon modo per farlo una volta per tutte, in modo che tutti gli sviluppatori del team non debbano modificare le loro impostazioni IDE. Qualche modo per renderlo un avvertimento, piuttosto che sopprimerlo completamente?
Nicolas Raoul,

È possibile creare una regola Lint personalizzata per regolare lo stato di gravità per una cosa specifica. C'è un esempio qui: tools.android.com/tips/lint-custom-rules
Eduko


8

aggiungi le righe nel tuo file /res/values.xml nella scheda radice della risorsa in questo modo:

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

strumenti: impostazioni locali impostano la lingua locale sull'inglese, non è necessario successivamente la traduzione della lingua per tutte le stringhe e gli strumenti di risorse: ignora lascia che Lint non isnora le traduzioni mancanti dei valori della stringa di risorse.


6

Aggiungi seguito al tuo file gradle nella sezione Android

    lintOptions {
       disable 'MissingTranslation'
    }

5

Inoltre,

Proprietà non dipendenti dal progetto, Preferenze Eclipse.
In Mac, Eclipse> Preferenze

inserisci qui la descrizione dell'immagine


3

Un altro approccio è quello di indicare le lingue che intendi supportare e filtrare il resto usando l'opzione 'resConfigs' con Gradle.

Dai un'occhiata a questa altra risposta per i dettagli

Questo è meglio, penso, perché non devi ignorare completamente gli errori di traduzione legittimi per le lingue che desideri effettivamente supportare



1

Molti di loro hanno dato risposte di lavoro diverse, e anch'io ho avuto gli stessi errori di lanugine che faccio ignorare facendo quanto segue con eclissi.

  1. clicca su Windows
  2. clicca sulle preferenze
  3. seleziona android> Controllo errori lanugine.
  4. fai clic su ignora tutto> Applica> Ok.

Questo è tutto.


2
questo ignorerà tutte le preferenze di lanugine. Non solo la traduzione mancante
Luciano Rodríguez,

1

Quanto segue ha funzionato per me.

  • Clicca su Windows
  • Clicca sulle preferenze
  • Seleziona Android> Controllo errori lanugine.
  • Trova e seleziona il controllo Lint pertinente e
  • Imposta la gravità su "Ignora" (in basso a destra)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.