Formatos / Android strings.xml

strings.xml, con el escapado que evita que falle tu build

Android tiene dos reglas que fallan en direcciones opuestas, y es fácil equivocarse con las dos a mano.

strings.xml

Un apóstrofo sin escapar rompe el build; uno escapado de más muestra una barra invertida

aapt rechaza un apóstrofo suelto dentro de un recurso de texto, así que una traducción al francés o al italiano detiene el build en lugar de publicarse mal. Si escapas uno que no lo necesitaba, el usuario ve una barra invertida en pantalla.

Linguiqo escapa a la salida y deshace el escapado a la entrada, de modo que lo que escribe el traductor es lo que lee el usuario, y lo que recibe el build es lo que acepta aapt. Los dos pasos se aplican en orden inverso en cada dirección, que es justo lo que suele fallar en un script hecho a mano.

Los quantity strings son plurales con la ortografía de Android

Un elemento plurals contiene elementos item por quantity: zero, one, two, few, many, other. Cuáles usa realmente un idioma lo decide CLDR, no el archivo, y escribir un item que el idioma nunca elige es peso muerto que el build sigue incluyendo.

Linguiqo escribe exactamente las categorías que usa el idioma de destino.

Preguntas

¿Se conservan mis arrays de textos?

No. Solo se leen y escriben los textos y los quantity strings, así que un archivo exportado no tiene elementos string-array. Guarda los arrays en un archivo de recursos aparte que Linguiqo no asigne.

¿Respeta translatable="false"?

Los textos marcados como no traducibles no entran en la cola del traductor.

Sube un archivo Android strings.xml y compruébalo

La demo lee un archivo real tuyo y te muestra el resultado. Sin cuenta, y a las dos horas se borra todo.

Abrir la demo

Qué es Linguiqo