Error "se traduce aquí pero no se encuentra en la configuración regional predeterminada" en strings.xml con translatable = "false"


98

Aquí están mis valores \ strings.xml (el archivo predeterminado) y todo se explica por sí mismo: ingrese la descripción de la imagen aquí

Mis preguntas):

  1. ¿Cómo puede ser "no encontrado en la configuración regional predeterminada" si estoy editando la configuración regional predeterminada (valores \ strings.xml)?
  2. ¿Cómo puede ser un error de traducción de pelusa si lo configuro translatable="false"? En las carpetas values-pl \ strings.xml (y también en las carpetas values-ru, values-iw), ¿las cadenas ni siquiera existen? de todos modos no debería.
  3. Parece que no puedo entender por qué no obtengo el error de la cadena rusa.

(Mostraría los valores-ru \ string.xml o values-pl \ string.xml aquí, pero no hay nada de interés, ya que de todos modos faltan las cadenas ...)


2
Si esto es algo que sucede de vez en cuando, simplemente realice las limpiezas habituales (limpiar / reconstruir o invalidar cachés / reiniciar en ASTUDIO, etc.) A menos que, por supuesto, el error sea "real". ;) Mi punto es que, con Android Studio 3.2 (beta atm), sucede un poco al azar, las cadenas buenas están subrayadas, tocas algo y el error desaparece. Tiene errores. ¯_ (ツ) _ / ¯
Martin Marconcini


Ejecutando Android Studio 3.3.2 en este momento. Esto me sucede ocasionalmente si duplico un nombre de cadena en el archivo strings.xml (como al copiar y pegar). Es un poco frustrante, pero la limpieza y el reinicio parecen solucionarlo.
John Riggs

Sucede con mucha frecuencia si mueve un recurso de un archivo a otro archivo en otro módulo. Tengo que invalidar el caché cada vez, la limpieza / compilación no tiene ningún efecto. Parece un problema con la indexación.
3c71

Ejecutar la aplicación funcionó para mí
kreker

Respuestas:


82

Esto me pasó a mí también

Hago 2 cosas:

  • Verifique el archivo completo para ver otra traducción no realizada (tengo algunos en el archivo en pero en pt-br)
  • Limpiar, actualizar gradle y cerrar y reiniciar Android Studio

8
Simplemente limpie el proyecto y reinicie Android Studio. Y funcionó;)
Ektos974

19
En caso de que limpiar el proyecto y reiniciar Android Studio no funcione, intente ejecutar Invalidate Caches / Restart.
makuno

2
Cachés limpios e invalidados / reinicio. ¡Funcionó para mí también! :)
Reeshabh Ranjan

2
❗ Intente eliminar la línea y volver a agregarla antes de hacer esto. La vida es corta.
Nolan Amy

Creo que u debe agregar un complemento a la respuesta, a saber, el comando: Invalidate Caches / Restart. Para no buscar en los comentarios, como hice yo por ejemplo.
Morozov

68

La reconstrucción puede llevar mucho tiempo. YMMV, pero ...

Simplemente elimine la línea ofensiva y vuelva a agregarla.

Trabajó para mi. Muy rapido.


3
Tuve que hacer aún menos. Cambié el nombre de la cadena y luego la volví a cambiar.
Matt

1
¡Guauu! esto es súper rápido.
userAbhi

3
Seleccione la línea ofensiva, ctrl-X, ctrl-V. Hecho. ¡Trabajó para mi!
ONE

1
Seleccione la línea ofensiva, elimine, deshaga (comando / control z). Hecho. ¡Trabajó para mi!
HendraWD

1
Soluciones más
rápidas

22

En mi caso esto me ayudó:

  1. Seleccione las cadenas que causan el error.
  2. Córtalos.
  3. Pégalos de nuevo

Si no le funciona, intente agregar las mismas cadenas al strings.xml(v21)archivo.


10

Presione Invalidate Caches / Restart ... para reiniciar Android Studio. Funcionó para mí. En realidad, esto sucedió cuando copié archivos de mi otra computadora y los pegué a través del explorador de archivos.


5

Tuve el mismo mensaje de error, solo con el extraño problema de que se lanzó en la configuración regional predeterminada y en todas las traducciones. Resulta que no debes usar puntos en tu nombre (por ejemplo, name = "bla.blub") porque se convertirá internamente a "bla_blub" y luego no puede coincidir con "bla.blub", de ahí el error. Solo tuve que cambiar los puntos a subrayados en la configuración regional predeterminada y luego todos los demás errores en otras traducciones (incluidos los puntos en el nombre) también desaparecieron.

Pero tenga en cuenta que otras herramientas de compilación aún pueden crear problemas, así que reemplace todos los puntos con subrayados.


4

Salir de Android Studio y reiniciarlo lo solucionó.


A mí también me funciona, es mucho menos doloroso que invalidar la caché y reiniciar.
3c71

4

Resolví este problema siguiendo los pasos a continuación:

  1. limpiando mi proyecto

  2. reconstruirlo

  3. y finalmente presionando cachés inválidos / Reiniciar en el menú de archivo


2

Creé una herramienta para administrar el estado de traducción de las aplicaciones de Android. No solo le dice qué cadenas faltan en los otros idiomas, sino que también puede informar y limpiar las cadenas sobrantes que puede haber eliminado en su archivo de traducción predeterminado.

https://github.com/gubatron/android-missing-strings

Para limpiar todas las sobras en otros idiomas, invoca así

./ams --cleanleftovers -o all.txt

Esto limpiará las cadenas sobrantes y generará el informe de cadenas faltantes para todos los idiomas en el archivo all.txt



1

Solo asegúrese de tener las mismas convenciones de nomenclatura en todos los archivos de cadenas, incluidas las mismas mayúsculas. digamos que si tiene "sign_in" en strings.xml y "sign_In" en su fr / string.xml, entonces le dará un error en fr / strings.xml como "se traduce aquí pero no se encuentra en la configuración regional predeterminada". Entonces, cuando editas a "sign_in". El error desaparecerá.


0

Copiar y pegar no me funcionó.

También probé Limpiar y reiniciar, el error anterior desapareció pero las nuevas cadenas ingresadas aún tienen nuevos errores.

Intenté cerrar el archivo strings.xml abierto y el Editor de traducciones , luego reiniciar.

Archivo strings.xml y editor de traducciones

Funciona para mi.


0

Tenía este problema para todas las cadenas de mi archivo xml.

La cuestión es que su valor predeterminado strings.xmlno debería tener un tools:localeatributo como los otros archivos traducidos. Si es así, cada vez que compilo la aplicación en modo de lanzamiento, la trata como otro archivo traducido.

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.