He visto algunas aplicaciones de Google y muestras de código usando etiquetas XLIFF para ajustar las variables. Veo algunas grandes ventajas al hacer esto, especialmente para reemplazar argumentos de formato no descriptivos como %1$s
.Mejorando los recursos de cadenas de Android con XLIFF
Desafortunadamente, XLIFF no parece integrarse bien en ADT. Tome el siguiente recurso de cadena, por ejemplo:
<resources
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"
xmlns:tools="http://schemas.android.com/tools">
<string name="share_with_application">
Share your score of <xliff:g id="score" example="1337">%1$s</xliff:g>
with <xliff:g id="application_name" example="Bluetooth">%2$s</xliff:g>!
</string>
</resources>
En el ejemplo anterior, la cadena se trunca después de la primera <xliff>
etiqueta. También se esperaría que el atributo example
a utilizar, lo que resulta en una vista previa que muestra gráfica:
compartir su puntuación de 1337 con Bluetooth!
¿Existe actualmente algún mérito para usar etiquetas XLIFF en los recursos de mis cadenas?
"He visto algunas aplicaciones de Google y el código ejemplos usando etiquetas XLIFF para ajustar variables "- si tiene un ejemplo de algún proyecto de Android, sin contar las aplicaciones AOSP, que usa XLIFF, indíquenoslo. Las aplicaciones AOSP tienen su propio proceso de compilación que podría integrar XLIFF. El uso de XLIFF no está documentado como compatible con Android SDK. – CommonsWare
Gracias por la información. Parece que los ejemplos 'strings.xml' en el directorio SDK solo tienen la declaración de espacio de nombre XLIFF y en realidad no usan las etiquetas. ¿Puedes darnos más información sobre estos procesos de compilación personalizada? ¿Son complementos de Jenkins? –
"¿Puede darnos más información sobre estos procesos de compilación personalizada?" - esas aplicaciones se crean como parte de la compilación completa del firmware (por ejemplo, 'lunch'), pero nunca hice una compilación de firmware completa, y mucho menos analicé todos los detalles de lo que hace. "¿Son complementos de Jenkins?" -- Lo dudo mucho; De todos modos, no necesitas a Jenkins para construir el firmware. – CommonsWare