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.