Recibo advertencias en Android Studio sobre cadenas no traducidas; me dice que no se han traducido al inglés. Esto parece ser porque tengo una carpeta de recursos "en-rGB". Pero he tratado de seguir las instrucciones en pelusa para especificar el idioma predeterminado, pero esto no ha funcionado.
Tengo los siguientes archivos strings.xml:
values/strings.xml
:
<resources xmlns:tools="http://schemas.android.com/tools"
tools:locale="en">
<string name="string1">Howdy</string>
<string name="string2">Howdy</string>
</resources>
values-en-rGB/strings.xml
:
<resources>
<string name="string1">Hello</string>
</resources>
values-fr/strings.xml
:
<resources>
<string name="string1">Bonjour</string>
<string name="string2">Bonjour</string>
</resources>
values-fr-rCA/strings.xml
:
<resources>
<string name="string2">Bonjour</string>
</resources>
Resultado esperado: no debe haber advertencias, ambas cadenas están traducidas al inglés y al francés
Resultado real: Lint advertirá sobre string2, diciendo que no está traducido al inglés.
Tenga en cuenta que he incluido fr-rCA para mostrar que no es algo regional. Es feliz que, mientras se traduzca al francés "no mencionado", no sea necesario traducirlo al francés canadiense. En este caso, no advertirá sobre string1, aunque no se haya traducido al francés canadiense, porque ya se ha traducido al francés.
No puedo cambiar la carpeta de recursos principal a inglés ( values-en
), ya que eso generará errores de que no hay recursos predeterminados. Cual es verdad.
No quiero suprimir la advertencia en general, porque estoy planeando agregar otros idiomas y SÍ quiero que aparezca la advertencia para cadenas que no están traducidas a otros idiomas que he incluido.
Lo que busco es la forma correcta de informar a pelusa del idioma predeterminado. Lo he hecho según las instrucciones de la advertencia "Traducción incompleta":
Puede decirle a lint (y otras herramientas) qué idioma es el idioma predeterminado en su carpeta res / values / mediante la especificación de herramientas: locale = "languageCode" para el elemento raíz en su archivo de recursos. (El prefijo de herramientas se refiere a la declaración del espacio de nombres http://schemas.android.com/tools ).
Pero esto no parece funcionar. ¿Lo estoy haciendo mal o es un problema con la pelusa?
fuente
strings.xml
archivos deben tener todas las entradas como predeterminadasvalues/strings.xml
, independientemente de si el valor necesita traducción o no.Respuestas:
Es un error: https://issuetracker.google.com/issues/142590628
Tengo una revisión para ti: copia automática
values/strings.xml
en lavalues-en
carpeta1. Crear
values-en
carpeta2. Péguelo en
app/build.gradle
Manifestación:
fuente