Update: I have updated this tutorial to include the testing part.

Hi !

My "Help wanted" call for translators on Sourceforge was quite a success. It is a success since I had answers, but not that much since I have no actual work done so far. That may be because of a lack of informations on how to do the translation job in Association Subscribers Manager.

So ! For all the peoples who wants to translate Association Subscribers Manager (or any other Qt4-based software) in their own language, here is my super quick howto.

Prepare to fight !

First thing comes first : be sure that your system have all required software installed. To work on the Association Subscribers Manager translation ou will need to access the code repository on Sourceforge. This is the place were all the files related to the project are stored (code, artwork, data, translations, etc.). This is publicly accessible for reading but I have to give you write access for you to be able to put your work on the repository.

The repository is a Subversion (shortened in SVN) on, and is accessible on Sourceforge.To be able to retrieve files from this SVN repository you have to install a subversion client on your system. On GNU/Linux based system their is high chances that you already have one, if it is not the case install it via your distribution package manager. On windows... well, obviously if you did not installed it before, you don't have a subversion client. You have to install one like TortoiseSVN. On Mac OS X I have no idea about the pre-installed SVN client, but I found a package from Martin Ott. So maybe you don't have any SVN client installed either.

Once the SVN client installed, please install the Qt 4 framework (if not already installed). On GNU/Linux it should be already installed (take care : we are talking about Qt 4 >= 4.4.0 not Qt 3 !). If it is not, for all plateforms, the quickest way to install Qt 4 and all the required tools is to install the brand new Qt 4.5 SDK. To do this, go on http://www.qtsoftware.com/downloads and choose the LGPL / Free downoad. Download the SDK (Software Development Kit) for your plateform. Once downloaded install it on you computer.

You are now ready to translate (or develop...) Association Subscribers Manager. If I summarize, you need :

  • a SVN client
  • the Qt 4 framework.

Retrieve files from the repository.

This is called "check out", you check the code out of the repository, easy to remember; isn't it ? You have various ways to do this, with tortoiseSVN it looks like you have to right clic in your file explorer and select "check out repository" (or something like that...), but the easiest way is to type in a console :

svn co https://assuma.svn.sourceforge.net/svnroot/assuma assuma

It will create a new directory called "assuma" (for ASsociation SUbscribers MAnager). This one contains all the code (and the translation files).

You are now ready to start translating !

Translate Association Subscribers Manager.

First, you have to be sure that your  translation is supported by the project file. To do so, edit the association_subscribers_manager.pro file. This is a text file saved in the UTF8 encoding. Search for the line starting with the word TRANSLATIONS and check if the language you want to work on have a translation file (ending with .ts). Translation files are named after this template : assuma_<language code>.ts. For example for Italian : assuma_it.ts. All .ts file are stored in the i18n/ directory. If there is no file for your language, just add it at the end of the TRANSLATIONS line. For example for Italian, I just have to add at the end of the line : i18n/assuma_it.ts

Once this is done, just save the file to continue.

You will need to update the translations tokens. To do so, open a terminal, go in the assuma/ directory and type :

lupdate association_subscribers_manager.pro

This will create the new files and update existing one with new and deprecated translations tokens.

Now it is easy, all the translation is done with Qt Linguist, so start the (Qt) Linguist tool. On windows it is in Start -> Qt SDK by Nokia ... -> Tools -> Qt Linguist, on Linux it is wherever your distribution linked it but probably in the "Development" section of the Gnome or KDE menu, or wherever you installed the SDK. Mac users... please search by yourself, I don't have any Mac to test.

Load a translation file, they are in the assuma/i18n/ directory (where assuma is the SVN repository you checked out before). The .ts files are the one you are interested in (the .qm are the compiled versions). You now should have a list of tokens to translates. Please refer to the Qt Linguist manual for translators to learn how to use this tool efficiently.

Once you have finished the job or you have something else to do, please save your work and commit it to the repository. Commit your work is done by selecting the appropriate "commit" command on whatever graphical interface you use, or by typing this in a shell :

svn commit

You can also commit a specific file :

svn commit i18n/assuma_fr-FR.ts

Sometime the EDITOR environment variable is not set and the svn command complains about it. In this case just do :

EDITOR=vim svn commit

Off course you can use any text editor instead of vim.

Test the result of your work

Actually this should be done before committing anything...

To test your work, it is very easy. First you need to compile the .ts file into a .qm one (Qt 's own binary format for translation files). To do this, open a terminal, go to the assuma/ directory and type :

lrelease association_subscribers_manager.pro

This will create all the .qm files. Then you have to file the language list description. This is the data/langpack.lst file the format is :

Language name;Language icon;Translation file

for example for Italian:

Italiano;images/flags/it.png;i18n/assuma_it.qm

Then you just have to restart the Association Subscribers Manager binary and go to Settings -> Locales and you will see be able to change the language to your freshly created one.

Conclusion.

That was not that difficult no ? I hope it helped a little, please feel free to ask questions in the comments or by dropping me an email at: a dot dupuis at infinityperl dot org. You can also try to find me on skype (arnaud underscore dupuis).

I hope this post will generate new vocations !

Arnaud Dupuis.