Inkscape tutorial sources are in Docbook XML format, with illustrations in SVG. If you want to translate one or more tutorials, first download the Docbook source here:
Each tutorial is in its own subdirectory. You need the *.xml file, for example basic/tutorial-basic.xml. You could get it and simply replace all English text in it with the text in your language, preserving all XML markup. See README at that location for some notes on markup. Other (better) ways are described below.
- If there's already such a file in SVN, you can edit it instead :) If there's no xml file at the above location but there's a translation of this tutorial in SVG format (in share/tutorials in Inkscape distribution), you'll need to convert it to Docbook (and probably update). Conversion can be done simply by: select the text blocks of an SVG tutorial in Inkscape, Ctrl+C, and Ctrl+V in your text editor, then add the markup.
- Save your file as <original name>.<language suffix>.xml, for example basic/tutorial-basic.es.xml for Spanish.
- Do not use symbolic entities like á (they're not defined in XML without a DTD). Instead use either numeric entities such as á or simply write your text in UTF-8.
- Most illustrations don't need translations, so you leave the references to them from English XML intact. If however an illustration has some text that you want to translate, open the illustration file in Inkscape (e.g. basic/basic-f12.svg), edit it as needed, and save under a different name (e.g. basic/basic-f12-es.svg). Then change the filename reference in the XML source appropriately.
- When finished, run xmllint on your file to make sure it's well-formed:
xmllint --noout --noent --valid <filename>
- Send the file to Joshua Andler <scislac at users dot sf dot net>, and he'll convert it to SVG and HTML and upload it to SVN and the web site.
- If after that you want to make any changes, download the file from the above location again, because it may have changed compared to the one you have.
- OmegaT - http://www.omegat.org/omegat/omegat_en/omegat.html
- Transolution - http://transolution.python-hosting.com/
- xml2po, see below
Transforming XML into PO files
One can also use xml2po to get PO files out of the XML sources, and also transform the PO files back to XML. After you have a PO file, follow the instructions for editing those files below.
xml2po is available in gnome-doc-utils (http://ftp.gnome.org/pub/gnome/sources/gnome-doc-utils/).
Here are some command lines that were used to translate a German tutorial (the de-locale), please adapt accordingly until we nicely integrate this into our Makefiles.
## use this at the very beginning, when there is no translation at all: xml2po --output=basic/tutorial-basic.pot basic/tutorial-basic.xml ## use this when there is a *.de.xml, but you want a de.po: xml2po --output=basic/de.po --reuse=basic/tutorial-basic.de.xml basic/tutorial-basic.xml ## xml2po is not happy when this directory doesn't exist: mkdir .tmp.basic ## use this when the tutorial-basic.xml has been updated and you ## want the new stuff in your de.po: xml2po --update-translation=basic/de.po basic/tutorial-basic.xml ## use this to create a tutorial-basic.de.xml from your de.po (ScislaC ## will use this file to create the final tutorial SVG file) ## WARNING: Unfortunately, this doesn't put localized screenshot ## file names into the xml file! xml2po --po-file=basic/de.po basic/tutorial-basic.xml > basic/tutorial-basic.de.xml
Keyboard and mouse translation
- See also Embedded Help
- First download the user manual xml document from SVN
- edit the trunk/xml/inkscapeUTF.xml file. All languages are inside.
- Just read the file, choose the language reference you want to use (en, fr...) and translate by duplicating the node and changing lang attribute to yours.
- when finishing editing, if necessary edit the Makefile and add your language to the Makefile. In every case test your file with some tools (xmllint...) or just type again "make your_language" : syntax errors will be displayed : please correct them.
- submit your work as a patch in the patch tracker and warn Cédric Gemy (cedric at le-radar.com) by email.
- first download inkscape.pod from SVN
- rename it to inkscape.xx.pod, where xx is the code for your language
- open inkscape.xx.pod in your favourite text editor (pay attention to encoding which must be UTF8), and directly translate in the file.
- you can take a look at a first example of translation with inkscape.fr.pod
- finally, submit your work in the patch tracker and drop a mail to the inkscape devel mailing list.
Ideas for Improving the Translation Process
PO files are very well-established in the Free Software translator community, so using them for as many documentation files as we can will get probably us the most translations. PO tools are also good at merging updates. When translating XML files directly, beginners will just do it in a regular editor and make mistakes when a new english tutorial arrives (this has happened at least in some German tutorials).
In addition to what's written above, xml2po can not only be used for converting the tutorial XML files themselves, but can also extract translatable content from the SVG illustrations, for example:
xml2po --output=tutorial-advanced.pot tutorial-advanced.xml advanced-f[0-9][0-9].svg
Extracting the single XML and SVG files from the PO file requires several calls to xml2po (thus should be scripted):
xml2po --po-file=de.po advanced-f01.svg > de.tmp/advanced-f01.svg xml2po --po-file=de.po advanced-f02.svg > de.tmp/advanced-f02.svg ...
This way, we don't even need the translated illustration files in SVN but can generate them on the fly (ScislaC came up with that idea on IRC).
http://cvs.gnome.org/viewcvs/gnome-doc-utils/gnome-doc-utils.make has a Makefile for intelligently handling xml2po and friends, but it is quite complicated. Maybe we could even think about following the route described here: http://live.gnome.org/GnomeDocUtilsMigrationHowTo
Work is done on Embedded Help which also must be integrated.
When we use the msgid "translator-credits" from the po files, we can collect them for use in the about box to only show the translators for the language that the GUI is currently in (idea by kaeso on IRC).
Also note that ScislaC (Joshua Andler <scislac at users dot sf dot net>) has a plan to re-arrange the tutorials and sort them in a deeper hierarchy, so we should wait with whatever we do until that is done.
ACSpike said on IRC that he thinks about setting up a build server for documentation (that can convert the XML files to SVG/HTML etc.)