## How to create or update a translation of Scribus

Scribus is available in over 20 languages, thanks to the many willing souls out there who have spent the time translating. This is no small task, but at least technically not a very difficult one. This page outlines the requirements and procedures for creating or updating such a translation.

Please note that there are many willing contributors to the Scribus project, and there may already be a translation in progress for the language you wish to help for. It would be worthwhile asking on the mailing list to see if someone has started. This is also a courtesy matter. At this point we don’t really have any “official” translators but perhaps you can work together, or take over an old translation if the previous translator no longer has the time to keep it up-to-date. So, here we go ...

### Part One: Translating the TS files

#### Requirements

- The Scribus source from SVN. Please see the Installation section for details on how to checkout SVN if you aren’t up with that yet. Its not too hard so don’t be dismayed. By working with the SVN source, you know you will be working with the latest Scribus source and therefore will get the most up-to-date set of files to translate.
- Lokalize or Qt4 Linguist (do not use Qt3 linguist!). Both of these are available in their respective development packages. The choice of which one to use is more a user preference, the result will be the same. For those who are new to this kind of work, Qt4 Linguist may be the tool of choice, as it offers a very simple, yet efficient user interface. Moreover, it's availabe for all platforms that are supported by Scribus (Linux/UNIX, Mac OS X, Windows 2000+, OS/4 Warp4 and eComStation).
- You will need to make sure you have the `lupdate` program installed, which is a part of Qt4, or perhaps a part of the Qt4 development package, depending on your distribution.

#### Procedure for creating or updating a translation file

1. Check out SVN.
2. Move into the `~/Scribus` directory.
3. Run `qmake -project`.
4. Edit the `Scribus.pro` file to have the language listed at the bottom that you wish to translate for. For example,

   >     TRANSLATIONS += resources/translations/po/scribus.en_GB.ts

   Of course, replace the `en_GB` in this example with the language code you are working with.
5. Run `lupdate Scribus.pro`.
6. Start your translation program and load the `resources/translations/po/scribus.en_GB.ts` file.
7. Perform the translations.
8. Save the `.ts` file and copy it into the source directory that contains the translation files (e.g. `~/Scribus/resources/translations`).
9. If you want to test your translation before submitting it to the Scribus developers, delete the file CMakeCache.txt in your build directory (provided you have built Scribus from source before), rerun cmake as you did before, but now add the parameter `-DWANT_GUI_LANG="xx_XX`, where xx_XX is the language code for your translation, e.g. en_GB (British English) or pt_BR (Brazilian Portuguese).
10. If you only specified your translation as a parameter, this will the only UI language available. If you have built Scribus with more than one language, select your translation in File > Preferences.

### Part Two: Translating other parts of Scribus

Unfortunately or fortunately, depending on your point of view, not all parts of the Scribus user interface can be translated via ts files. In two cases you need to edit XML files to translate Scribus, namely for Templates and the Render Frame editor.

#### Translating Templates

To translate Template categories, names and decriptions, you need the file `template.xml` from the directory `~/Scribus/resources/templates`. Save this file under a name that helps Scribus identify the language you are translating to, e.g. `template.it.xml` for Italian.

The content of the XML file is (hopefully) self-explanatory. There is an entry for each template. A complete entry looks like this:

    <template category="Newsletters">
    	<name>TextBased</name>
    	<file>textbased/textbased.sla.gz</file>
    	<tnail>textbased/textbasedtn.png</tnail>
    	<img>textbased/textbased.png</img>
    	<psize>A4</psize>
    	<color>color</color>
    	<descr>A decent newsletter/magazine originally created for one non-profit organization. Unrealized unfortunately.</descr>
    	<usage>Right click on text replace what's inside with your own. Or whatever you want to... ;)</usage>
    	<scribus_version>1.2RC1cvs</scribus_version>
    	<date>2004-07-10</date>
    	<author>Petr Van&#283;k</author>
    	<email>petr@yarpen.cz</email>
    </template>

Fortunately, you need not (actually must not) translate everything in here. What needs a translation is only the strings that are in red in the example above.

#### Translating the Render Frame Editor

As described in Working with Render Frames, this kind of frame is freely configurable. Not only can you add configuration files for new programs, but you can also add translations to existing ones. In contrast to Templates, you don’t have to create new XML files for your translations. Instead, you need to edit the existing ones. The configuration files for Render Frames are located in `~Scribus/resources/editorconfig`. There is a file for each program, e.g. `100_latex.xml` for LaTeX, `300_lilypond.xml` for Lilypond etc.

To make life easier for translators, the developer of the Render Frame plugin has placed an indicator for translatable text strings in the files, namely `i18n`, which is an acronym for “internationalization”:

    <title><i18n>
    	<en>Ranges</en>
    	<cs>Rozsahy</cs>
    	<de>Bereiche</de>
    	<fr>Rangées</fr>
    	<pl>Zakresy</pl>
    	<ru>&#1044;&#1080;&#1072;&#1087;&#1072;&#1079;&#1086;&#1085;&#1099;</ru>
    	<hu>Tartomány</hu>
    </i18n></title>

If you want to add a, say, Dutch translation, simply add a string like this to the list above: `<nl>Bereik</nl>`. Of course you should only submit a translated configuration file that’s complete to the development team!

### Submitting your translation

- Once you are happy with the result of your hard work, please open your web browser, head to the Scribus Bugtracker and submit a new bug with the title of your translation update under the “Translation” category.
- Please note that as of Scribus 1.3.9 it is no longer necessary to upload qm files, as these will be generated at build time. Also note that the translation of the Templates and Render Frame files is optional.
- If you want to be credited (and we prefer to give credit where credit is due!), please add your name and your email address to the bug report.
- That’s it! When the next SVN release is made, your new translation will be added by the team. Usually, new translations are being added SVN within one or two days.

### Translating the Online Help

Before you start translating the Online Help, you should be aware of the fact that this a huge task, and this doesn’t just refer to the skills or the time required to successfully complete the work. The documentation will be updated on a regular basis, which is why you should contact the team before you are wasting your time on translating files that are in the process of being rewritten or replaced. Also note that some basic HTML knowledge will help a lot, since all help files are written in HTML. Again, you are advised to contact the development team to learn about the rather strict HTML coding conventions for Scribus help files.