Pelusa: ¿Cómo ignorar los errores "<key> no se traducen en <language>"?

189

No puedo compilar / depurar nuestra aplicación de Android, porque los archivos de localización aún no son perfectos.

La herramienta de validación de mi IDE, Lint, crea errores que dicen:

newCardsOrderVals no está traducido en ar, bg, ca, cs

Compilar / instalar / ejecutar con Ant funciona bien, pero me gustaría usar mi IDE para facilitar la depuración.

¿Hay alguna forma de desactivar esta verificación en particular, o idealmente hacerla una advertencia en lugar de un error?

Entiendo que antes del lanzamiento realmente necesitaremos corregir los archivos de localización, pero por el momento no es una prioridad ya que las pantallas en sí se modifican con mucha frecuencia.

Nicolas Raoul
fuente
1
¿Hay alguna manera de configurar qué idiomas están marcados como "no traducidos"? Recibo errores como "es, he y iw". ¿Por qué obtengo esos idiomas? ¿Cómo configuro mi aplicación de Android para restringir el conjunto a "en" solamente?
Inder
@inder: ¿Quizás porque tienes directorios como "values-he", etc. en tu carpeta res /?
Nicolas Raoul
1
No, no tengo ninguno de esos directorios. Solo valores, diseño y dibujable.
inder
77
es, él y yo venimos de la biblioteca de Facebook SDK.
madej
2
Este es un error en Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Respuestas:

348

Android Studio:

  • "Archivo"> ​​"Configuración" y escriba "MissingTranslation" en el cuadro de búsqueda

Eclipse:

  • Windows / Linux: en "Ventana"> "Preferencias"> "Android"> "Comprobación de errores de pelusa"
  • Mac: "Eclipse"> "Preferencias"> "Android"> "Comprobación de errores de pelusa"

Encuentre la MissingTranslationlínea y configúrela Warningcomo se ve a continuación:

Faltan traducciones, no está traducido en

Nicolas Raoul
fuente
2
... Está en "Ventana"> "Preferencias"> "Android"> "Comprobación de error de pelusa"
Ollie Bennett
2
Es útil, pero no tuve este problema durante mucho tiempo, hasta que apareció de repente. Y no sé por qué.
pktangyue
Gracias por tu valiosa publicación
Pawan asati
Para su información, en Android Studio es "Archivo"> ​​"Configuración" y "MissingTranslation" en el cuadro de búsqueda.
igual
86

Puede establecer el atributo translatable = "false" en la definición de esta manera:

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

Para más información: http://tools.android.com/recent/non-translatablestrings

efor18
fuente
1
Dije "los archivos de localización aún no son perfectos ". Se están llenando poco a poco. translatable = "false" evitaría que alguien traduzca.
Nicolas Raoul
3
Si bien la respuesta no está directamente relacionada con la pregunta, supongo que proporciona una solución brillante para personas como yo que encontraron este tema cuando Google "cómo hacer pelusa no se preocupe por las constantes / parámetros de mi aplicación". Gracias efor18!
aka_sh
83

Para ignorar esto en una compilación gradle, agregue esto a la sección de Android de su archivo de compilación:

lintOptions {
   disable 'MissingTranslation'
}
Janusz
fuente
2
Muchas gracias, literalmente me ahorró días de encontrar todas las cadenas correctas para la producción.
D-Kent el
Agradable, esto lo hizo
Mirko
Agregué esto a mi módulo de aplicación y me lo ayudó.
Mercurio
23

Esto hará que Lint ignore el error de traducción que falta para TODAS las cadenas del archivo, aunque se pueden verificar otros archivos de recursos de cadena si es necesario.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">
Tom Bollwitt
fuente
Esta es probablemente la forma más correcta de proceder, sin desactivar la pelusa para todo el proyecto
MatPag
11

Si desea desactivar las advertencias sobre las cadenas específicas, puede usar lo siguiente:

strings.xml

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

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

</resources>

Si desea advertir sobre cadenas específicas en lugar de un error, deberá crear una regla de pelusa personalizada para ajustar el estado de gravedad de una cosa específica.

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

Eduko
fuente
1
+1 Buena forma de hacerlo de una vez por todas, para que todos los desarrolladores del equipo no tengan que modificar su configuración IDE. ¿Alguna forma de hacer una advertencia, en lugar de suprimir por completo?
Nicolas Raoul
Puede crear una regla de pelusa personalizada para ajustar el estado de gravedad de una cosa específica. Aquí hay un ejemplo: tools.android.com/tips/lint-custom-rules
Eduko
9

Inserte en el lint.xmlarchivo esto:

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

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

Para más detalles: Suprimir advertencias de pelusa .

Brais Gabin
fuente
8

agregue las líneas en su archivo /res/values.xml en la pestaña raíz del recurso de esta manera:

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

herramientas: la configuración regional establece el idioma local en inglés, sin necesidad de traducción del idioma más adelante para todas las cadenas de recursos y herramientas: ignorar deja que Lint ignore las traducciones faltantes de los valores de las cadenas de recursos.

Purvik Rana
fuente
6

Agregue seguimiento a su archivo gradle en la sección de Android

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
fuente
5

Adicionalmente,

No proyectar propiedades dependientes, preferencias de Eclipse.
En Mac, Eclipse> Preferencias

ingrese la descripción de la imagen aquí

Jinbom Heo
fuente
3

Otro enfoque es indicar los idiomas que desea admitir y filtrar el resto utilizando la opción 'resConfigs' con Gradle.

Mira esta otra respuesta para más detalles

Creo que esto es mejor porque no tiene que ignorar por completo los errores legítimos de traducción para los idiomas que realmente desea admitir

kip2
fuente
1

Muchos de ellos tienen una respuesta de trabajo diferente, y yo también recibí los mismos errores de pelusa que ignoro haciendo lo siguiente con eclipse.

  1. haga clic en Windows
  2. haga clic en preferencias
  3. seleccione android> Comprobación de errores de pelusa.
  4. haga clic en ignorar todo> Aplicar> Aceptar.

Eso es.

raju
fuente
2
esto ignorará todas las preferencias de pelusa. No solo la traducción que falta
Luciano Rodríguez
1

Lo siguiente funcionó para mí.

  • Haga clic en Windows
  • Haga clic en preferencias
  • Seleccione Android> Comprobación de errores de pelusa.
  • Busque y seleccione la comprobación de pelusa relevante y
  • Establezca la gravedad en 'Ignorar' (en la parte inferior derecha)
user4353093
fuente