De vez en cuando traduzco algunas aplicaciones de Android: el desarrollador me envía un archivo XML, p. Ej.
<string name="foo">Foo</string>
<string name="baz">Baz</string>
y le devuelvo un archivo XML donde se ha traducido el contenido de cada elemento, p. ej.
<string name="foo">Translated foo</string>
<string name="baz">Translated baz</string>
El problema surge cuando el desarrollador agrega un nuevo elemento de texto y me envía un nuevo archivo para traducir, por ejemplo
<string name="foo">Foo</string>
<string name="bar">Bar</string>
<string name="baz">Baz</string>
Pregunta: ¿Cómo puedo comparar esto con mi archivo traducido anterior buscando solo las etiquetas con nuevos atributos o, mejor aún, hay una manera simple (ish) de fusionar los dos archivos, posiblemente agregando un marcador al comienzo de las nuevas líneas? ¿a ser traducido?
Dado el ejemplo anterior, esto significaría generar un archivo como
<string name="foo">Translated foo</string>
<!-- new --><string name="bar">Bar</string>
<string name="baz">Translated baz</string>
Respuestas:
Como no encontré ninguna solución preexistente, decidí escribir un pequeño script de Python que hasta ahora parece hacer el trabajo:
Aquí está la salida de ejemplo obligatoria:
Observación: Soy relativamente nuevo en Python y completamente nuevo en XML, por lo que cualquier comentario sobre cómo mejorar el código anterior sería muy apreciado.
fuente