Official:Translation Howto

From Scribus Wiki
Revision as of 23:33, 3 November 2016 by Kunda (talk | contribs) (How to create or update a translation of Scribus: Added Transifex)
Jump to: navigation, search

How to create or update a translation of Scribus

Scribus is available in over 50 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. Please check the list of languages that are currently supported in Scribus and that already have coordinators. If you want to help translate you can submit a request through the ongoing Scribus Transifex crowdsourcing effort.

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>
	textbased/textbased.sla.gz
	<tnail>textbased/textbasedtn.png</tnail>
	<img>textbased/textbased.png</img>
	<psize>A4</psize>
	<color>color</color>
	<descr>A decent newsletter/magazine originaly 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ě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>Диапазоны</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!

Translating Qt framework

Example of a Qt translation dependence. This is Scribus using the Hungarian localization with 100% completed translation file. As you can see the strings for the dialog box buttons are still in English.

Scribus is based on the Qt Framework and therefore some basic dialog box receive translations from the Qt directly. Ideally Qt framework would have complete translations on that specific relevant language.

But sometimes if we encounter using Scribus in another language besides english that:

  1. some basic dialog boxes appear English
  2. the specific language you are using in Scribus has been translated totally or that you've looked in the .ts file and can't find those non-translated strings

This indicates that the issue is an upstream Qt translation problem. To check this you can check the Qt translation state for your specific language here. The Qt framework is translated code.qt.io/cgit/qt/qttranslations, and this is the official guide for translators.

FYI, for those of you who are wondering why we don't just translate these Qt translated dependant strings directly in Scribus, see jghali's explanation.

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.