Howto translate Association Subscribers Manager.
By Arnaud Dupuis on Tuesday 14 April 2009, 23:10 - Association Subscribers Manager - Permalink
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.
Comments
-Test the result of your work-
This section I don't understand Please tell me again.
I have file th_TH.ts I want to make it to th_TH.qm.
What's I can do for it now?
Sorry if I write English backward because I from Thailand.
By Chanchana Sornsoontorn Date of Birth is 10/01/1995 Tuesday/January/Age 12
Thanks a lot!
Hi,
The simplest way is too open a console (it can be called "terminal" on GNU/Linux or "command" on windows) in the directory of your th_TH.ts file (under KDE Dolphin or Konqueror have an option to "Open a terminal here") and to call the lrelease program on it like that :
lrelease th_TH.ts
It will generate a file called th_TH.qm. If you cannot open a terminal/console/command in the directory of your .ts file, go to this directory directly from the console. For example, if your th_TH.ts file is in the /home/Chanchana/Dev/Translation/ type :
cd /home/Chanchana/Dev/Translation/
and type the previous command line (lrelease ...).
If you still have problem, tell me your operating system, I might be able to give you more specific directions.
Good luck !
Arnaud Dupuis
You can also watch for an updated version of this document at :
http://www.associationsubscribersma...