Tengo una caricatura con múltiples capas; entre esas capas tengo una capa alemana y otra inglesa. Tienen el texto en sus respectivos idiomas. La idea es ocultar la capa alemana y mostrar la capa inglesa y exportar como una caricatura inglesa u ocultar la capa inglesa y mostrar la capa alemana para una versión alemana de la caricatura. Me gustaría escribir esa exportación.
Aquí hay una parte de mi archivo SVG:
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="English"
style="display:inline">
<text
xml:space="preserve"
<!-- .... -->
id="text3255">
<tspan id="tspan3257">I don't think</tspan>
<!-- ... -->
y
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="German"
style="display:none">
<text
xml:space="preserve"
<!-- ... -->
id="text3284">
<tspan id="tspan3286">Ich glaube nicht,</tspan>
<!-- ... -->
He visto /programming/9652573/inkscape-command-line-programming y probé este comando (y muchas variaciones):
inkscape -z --file=cartoon.svg --select=English --verb=LayerHideAll --select=German --verb=LayerShowAll --export-png=cartoon-de.png --export-area-drawing
Pero sigo recibiendo el texto en inglés, probablemente porque cuando guardé el archivo, la capa en inglés era visible y la capa en alemán no.
También he intentado seleccionar las capas por sus ID (en el código anterior capa3 y capa4, respectivamente), y seleccionando los <text>
elementos reales ; He probado varias combinaciones de verbos de Inkscape. Pero tampoco suerte.
¿Cómo puedo escribir esta exportación, ocultar o mostrar la capa de idioma según sea necesario? ¿Puedo hacer esto con los verbos de Inkscape o debería trabajar con el XML e intentar configurar el atributo de estilo para mostrar: en línea o mostrar: ninguno?
display:...
que se rompa si ya tienes otros atributos de estilo como la opacidad. He actualizado la respuesta.