Hi there, I want to translate the text content of a bunch of SVG files. I thought of using the same mechanism that we use for the Inkscape tutorials, but I can't find much information about how it works. The workflow I'm thinking of is:
1. Extract the strings from the SVG into .po files 2. Translate the .po files 3. Put the translated strings back into the SVG files.
Can you help me work this out, please?
Thank you. -- *Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com LinkedIn https://www.linkedin.com/in/lucasvieites
Hi Lucas,
the tutorials are written in XSLT, a markup language similar to HTML, which can be converted to multiple formats, among them SVG and HTML. This takes into account differing text lengths, adjusts line lengths and document size for different numbers of characters.
So that mechanism very likely is not the solution for you, if the SVG images already exist.
SVG provides a built-in mechanism of '<switch>' to be multilingual in a single file. If your translators can edit the SVG files themselves, they could use that. Or you could, of course. But this is cumbersome.
Because of different text length, usually manual editing is the way to go.
Or perhaps, if the texts are short, one-line things, or the layout allows for variable text length, something like NextGenerator and putting the translations in a CSV file could work, too: https://inkscape.org/~Moini/%E2%98%85nextgenerator-replace-export
If you find something else, let us know here, it's going to be interesting.
Maren
Am 22.02.26 um 10:49 schrieb Lucas Vieites:
Hi there, I want to translate the text content of a bunch of SVG files. I thought of using the same mechanism that we use for the Inkscape tutorials, but I can't find much information about how it works. The workflow I'm thinking of is:
- Extract the strings from the SVG into .po files
- Translate the .po files
- Put the translated strings back into the SVG files.
Can you help me work this out, please?
Thank you.
*Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com https://lucasvieites.com/ LinkedIn https://www.linkedin.com/in/lucasvieites
Inkscape Translators mailing list -- inkscape-translator@lists.inkscape.org To unsubscribe send an email to inkscape-translator-leave@lists.inkscape.org
Aargh, that's a shame, but it brings me a step further. Thank you, Moini. The design software they're using does a pretty good job of exporting each page to SVG, which is supported in OmegaT, except for the fact that the segmenter does a terrible job of separating sentences properly. What I'm struggling most with is how to put the translated text back into the SVG file, in the same spot. I fear that will have to be a manual effort when that time comes. I'm documenting my steps all the way so I can write up a little tutorial when I'm done.
Thanks, -- *Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com LinkedIn https://www.linkedin.com/in/lucasvieites
On Sun, Feb 22, 2026 at 5:01 PM Maren Hachmann maren@goos-habermann.de wrote:
Hi Lucas,
the tutorials are written in XSLT, a markup language similar to HTML, which can be converted to multiple formats, among them SVG and HTML. This takes into account differing text lengths, adjusts line lengths and document size for different numbers of characters.
So that mechanism very likely is not the solution for you, if the SVG images already exist.
SVG provides a built-in mechanism of '<switch>' to be multilingual in a single file. If your translators can edit the SVG files themselves, they could use that. Or you could, of course. But this is cumbersome.
Because of different text length, usually manual editing is the way to go.
Or perhaps, if the texts are short, one-line things, or the layout allows for variable text length, something like NextGenerator and putting the translations in a CSV file could work, too: https://inkscape.org/~Moini/%E2%98%85nextgenerator-replace-export
If you find something else, let us know here, it's going to be interesting.
Maren
Am 22.02.26 um 10:49 schrieb Lucas Vieites:
Hi there, I want to translate the text content of a bunch of SVG files. I thought of using the same mechanism that we use for the Inkscape tutorials, but I can't find much information about how it works. The workflow I'm thinking of is:
- Extract the strings from the SVG into .po files
- Translate the .po files
- Put the translated strings back into the SVG files.
Can you help me work this out, please?
Thank you.
*Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com https://lucasvieites.com/ LinkedIn https://www.linkedin.com/in/lucasvieites
Inkscape Translators mailing list --
inkscape-translator@lists.inkscape.org
To unsubscribe send an email to
inkscape-translator-leave@lists.inkscape.org
Inkscape Translators mailing list -- inkscape-translator@lists.inkscape.org To unsubscribe send an email to inkscape-translator-leave@lists.inkscape.org
Am 22.02.26 um 19:04 schrieb Lucas Vieites:
Aargh, that's a shame, but it brings me a step further. Thank you, Moini. The design software they're using does a pretty good job of exporting each page to SVG, which is supported in OmegaT, except for the fact that the segmenter does a terrible job of separating sentences properly. What I'm struggling most with is how to put the translated text back into the SVG file, in the same spot. I fear that will have to be a manual effort when that time comes.
I'd try search & replace, and preparing the SVG in a way that makes it not care about the exact text length (using flowed text with enough space below, or center-align, or just leave enough space).
NextGenerator does that, but you don't really need it for just doing searching and replacing in text files. A bash script would do the same thing faster.
Maren
I'm documenting my steps all the way so I can write up a little tutorial when I'm done.
Thanks,
*Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com https://lucasvieites.com/ LinkedIn https://www.linkedin.com/in/lucasvieites
On Sun, Feb 22, 2026 at 5:01 PM Maren Hachmann <maren@goos-habermann.de mailto:maren@goos-habermann.de> wrote:
Hi Lucas, the tutorials are written in XSLT, a markup language similar to HTML, which can be converted to multiple formats, among them SVG and HTML. This takes into account differing text lengths, adjusts line lengths and document size for different numbers of characters. So that mechanism very likely is not the solution for you, if the SVG images already exist. SVG provides a built-in mechanism of '<switch>' to be multilingual in a single file. If your translators can edit the SVG files themselves, they could use that. Or you could, of course. But this is cumbersome. Because of different text length, usually manual editing is the way to go. Or perhaps, if the texts are short, one-line things, or the layout allows for variable text length, something like NextGenerator and putting the translations in a CSV file could work, too: https://inkscape.org/~Moini/%E2%98%85nextgenerator-replace-export <https://inkscape.org/~Moini/%E2%98%85nextgenerator-replace-export> If you find something else, let us know here, it's going to be interesting. Maren Am 22.02.26 um 10:49 schrieb Lucas Vieites: > Hi there, > I want to translate the text content of a bunch of SVG files. I > thought of using the same mechanism that we use for the Inkscape > tutorials, but I can't find much information about how it works. The > workflow I'm thinking of is: > > 1. Extract the strings from the SVG into .po files > 2. Translate the .po files > 3. Put the translated strings back into the SVG files. > > Can you help me work this out, please? > > Thank you. > -- > *Lucas Vieites <https://namedrop.io/lucasvieites <https:// namedrop.io/lucasvieites>>* > lucasvieites.com <http://lucasvieites.com> <https:// lucasvieites.com/ <https://lucasvieites.com/>> > LinkedIn <https://www.linkedin.com/in/lucasvieites <https:// www.linkedin.com/in/lucasvieites>> > > _______________________________________________ > Inkscape Translators mailing list -- inkscape- translator@lists.inkscape.org <mailto:inkscape- translator@lists.inkscape.org> > To unsubscribe send an email to inkscape-translator- leave@lists.inkscape.org <mailto:inkscape-translator- leave@lists.inkscape.org> _______________________________________________ Inkscape Translators mailing list -- inkscape- translator@lists.inkscape.org <mailto:inkscape- translator@lists.inkscape.org> To unsubscribe send an email to inkscape-translator- leave@lists.inkscape.org <mailto:inkscape-translator- leave@lists.inkscape.org>
Inkscape Translators mailing list -- inkscape-translator@lists.inkscape.org To unsubscribe send an email to inkscape-translator-leave@lists.inkscape.org
неділя, 22 лютого 2026 р. 18:00:56 EET Maren Hachmann написано:
Hi Lucas,
the tutorials are written in XSLT, a markup language similar to HTML, which can be converted to multiple formats, among them SVG and HTML. This takes into account differing text lengths, adjusts line lengths and document size for different numbers of characters.
So that mechanism very likely is not the solution for you, if the SVG images already exist.
SVG provides a built-in mechanism of '<switch>' to be multilingual in a single file. If your translators can edit the SVG files themselves, they could use that. Or you could, of course. But this is cumbersome.
Because of different text length, usually manual editing is the way to go.
Or perhaps, if the texts are short, one-line things, or the layout allows for variable text length, something like NextGenerator and putting the translations in a CSV file could work, too: https://inkscape.org/~Moini/%E2%98%85nextgenerator-replace-export
If you find something else, let us know here, it's going to be interesting.
Hi,
po4a can be used to extract messages from SVG as an case of XML. For example (SVG in ./en),
#!/bin/bash
po4a-updatepo --format xml -o \ --master-charset UTF-8 --po tutorial.pot \ --msgid-bugs-address "example@ml.mylocale.org" --copyright-holder "My Team" \ --package-name "Tutorials" --package-version "6.0" \ $( for doc in en/*.svg; do echo --master $doc done )
Modern way is to use po4a.conf.
Just my 2 cents.
Bestrgerads, Yuri
Maren
Am 22.02.26 um 10:49 schrieb Lucas Vieites:
Hi there, I want to translate the text content of a bunch of SVG files. I
thought of using the same mechanism that we use for the Inkscape tutorials, but I can't find much information about how it works. The workflow I'm thinking of is:
- Extract the strings from the SVG into .po files
- Translate the .po files
- Put the translated strings back into the SVG files.
Can you help me work this out, please?
Thank you.
-- *Lucas Vieites https://namedrop.io/lucasvieites* lucasvieites.com https://lucasvieites.com/ LinkedIn https://www.linkedin.com/in/lucasvieites
Inkscape Translators mailing list -- inkscape-translator@lists.inkscape.org
To unsubscribe send an email to
inkscape-translator-leave@lists.inkscape.org
participants (3)
-
Lucas Vieites -
Maren Hachmann -
Yuri Chornoivan