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.


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


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


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

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

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


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


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.


6

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

    lintOptions {
       disable 'MissingTranslation'
    }

5

Adicionalmente,

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

ingrese la descripción de la imagen aquí


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



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.


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)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.