======Translating Photivo======
Photivo uses [[http://en.wikipedia.org/wiki/Qt_(framework)|Qt’s]] built-in translation capabilities. That makes it easy and convenient to translate but needs a bit of setting up at first. In this article we walk you through all the installation steps. If you run into problems or have any questions, [[:feedback|contact Brother John]].
It’s probably a good idea to get in touch anyway to avoid multiple people doing the same language in parallel.
=====Setup the Translation Environment=====
From Qt you need **Qt Linguist** to do the actual translation and the **lupdate** tool to create and update the translation file for your language. Also you need the **Mercurial** version control software to get the Photivo source code.
====Windows====
* First create a folder where you want all the translation tools and Photivo itself to be located. We’ll assume ''C:\ptTranslate'' in this article but you can use any folder you like.
* Qt Linguist and lupdate are included in the Qt SDK that you can get from the [[http://qt.nokia.com/downloads/downloads#lgpl|official Qt download site]]. However, that is a huge download (over 300 MB) and most of it is unnecessary. That’s why we provide a stripped down version (from the Qt 4.7.0 SDK installer) with only the necessary stuff: [[http://code.google.com/p/photivo/downloads/detail?name=translator-tools-win32.zip&can=2&q=|grab it from Google Code]] and unpack it to your ''C:\ptTranslate'' folder.
* Mercurial: Get the Windows commandline setup (MSI version recommended) from the [[http://mercurial.selenic.com/downloads/|Mercurial download site]] and install it. If you already have Mercurial or a graphical tool like [[http://tortoisehg.bitbucket.org/|ToroiseHg]] installed, that will work as well.
* Open a console window (also known as //command prompt// or //DOS window//) in your ''C:\ptTranslate'' folder.
====Linux====
(Probably works the same or very similar for **Mac**.)
* Create a directory for all the translation stuff. We’ll assume ''~/ptTranslate'' for this article
* Install Qt Linguist and lupdate via your package manager. If you cannot find them individually, look for the Qt 4 SDK.
* Also install Mercurial, if you do not already have it. A graphical tool like [[http://tortoisehg.bitbucket.org/|ToroiseHg]] will work as well.
* Open a terminal window in your ''~/ptTranslate'' directory.
=====Prepare the new translation=====
Now you are ready to get your translation started. First you get a copy of Photivo’s source code, then you tell Photivo about the new language and generate the translation file.
* From the opened console window first get a clone of the Photivo source code repository. Execute these lines (works for both Windows and Linux): \\ hg clone https://photivo.googlecode.com/hg/ photivo
cd photivo
hg update default
Leave the window open.
* Open the file ''photivoProject.pro'' in the ''photivoProject'' subfolder with a text editor and at the very end of the file add a new translation line for your language (just below the other translation lines). \\ TRANSLATIONS += ../Translations/photivo_LANGNAME.ts
Replace the //LANGNAME// with the English name of your language, e.g. “German” or “Italian”. Photivo uses the //LANGNAME// part of the file name to display the available translations on the **Settings** tab.
* In the console window run ''lupdate'': \\ **Windows**: "C:\ptTranslate\lupdate.exe" photivo.pro
**Linux**: lupdate photivo.pro
* There should now be a new ''photivo_//LANGNAME//.ts'' file in Photivo’s ''Translations'' subfolder.
Especially on Windows ''lupdate'' will produce some errors or warnings. As long as the ''.ts'' file is created you don’t need to worry about them.
=====Translating=====
* Open your ''photivo_//LANGNAME//.ts'' with Qt Linguist and start translating.
* When you open the translation file for the first time Qt Linguist displays the language selection dialog. Adjust the **Destination language** as needed but keep the **Source language** unchanged, even if it looks weird.
* The Qt documentation includes a [[http://doc.qt.nokia.com/linguist-translators.html|tutorial for Qt Linguist]].
=====Test and Release=====
You can test your translation with your normal Photivo installation.
* Compile the translation file (''File › Release'' in Qt Linguist). That produces ''photivo_//LANGNAME//.qm'' in the same folder as your ''photivo_//LANGNAME//.ts''.
* Copy the ''.qm'' file to
* **Linux**: ''~/.photivo/translations''
* **Win Vista/7**: ''C:\Users\//username//\AppData\Roaming\Photivo\Translations'' (the path might appear translated into your Windows’s language in Explorer)
* **Win XP**: ''C:\Documents and Settings\//username//\Application Data\Photivo\Translations'' (the path is translated into your Windows’s language).
* Start Photivo, go to the **Settings** tab and choose your language from the **Translation** combobox.
To get your translation officially into Photivo we only need the completed ''.ts'' file – but if you can provide a final ''.qm'' as well, we won’t complain. :-) The translation needs to be licensed under the [[http://www.gnu.org/licenses/gpl.html|GNU GPL version 3]] like the rest of Photivo. Also tell us how you’d like to be credited. Full name? Nickname only? E-mail address? The person to get in touch with is again [[:feedback|Brother John]].
=====Update the translation=====
Of course with time text in Photivo’s GUI will change and new text will appear. That’s no immediate problem, because if Photivo cannot find a translation for a certain item it will just use the default English text.
Updating the translation is easy:
* Like above open a console window in your Photivo source code folder (where ''photivo.pro'' is located).
* Update to the latest source code revision: \\ hg pull
hg update default
* Run ''lupdate'' to add the new strings to your ''photivo_//LANGNAME//.ts'': \\ **Windows**: "C:\ptTranslate\lupdate.exe" photivo.pro
**Linux**: lupdate photivo.pro
* In Qt Linguist the new strings are marked as //unfinished// so you can find them easily.