Internationalization (i18n of X2Go)
Some of the X2Go components can be internationalized/localized (translated into many of the globe's languages as possible). Here is a short howto that explains what you need to do, to contribute your language to X2Go.
Translatable X2Go components
Overview of the process
- Install needed software
- Clone a copy of the X2Go component you want to translate/update from X2Go Git
- (if needed) Add your language and create the initial language file
- Translate the language file
- Prepare the patch and send it to the x2go-i18n mailing list
The process in detail
Translating x2goclient
X2Go Client uses Qt4 which has a great tool to help you translate X2Go Client into your language - Qt Linguist.
- To be able to translate you need to install Qt Linguist (version 4.x) - for Debian and Ubuntu you can install qt4-dev-tools, which also will install qt4-linguist-tools that also is needed. The preferred way of sending in translations is as git-patches, so we need git which in Debian and Ubuntu is accomplished by installing the package git.
- We need a directory to keep the cloned copies of the git repository, I prefer to have mine in ~/git/ , but you can choose what suits you best.
- Follow the instructions on cloning a git repository from here: http://wiki.x2go.org/wiki:development:git
- Also remember to follow the instructions there on how to set your name and email in Git
- When you got your Git working copy of X2Go Client cloned locally, changedir into the cloned directory
- Edit the .pro file, e.g. 'x2goclient.pro' for the x2goclient repository and add your language file there (if it doesn't exist). For the Swedish language I added this line:
TRANSLATIONS += x2goclient_sv.ts
Some locales have both language and territory specified, e.g. the file for the Bokmal languague in Norway is named x2goclient_nb_no.ts.
- After adding the intended language we need to get the actual language file created. Run this in the same directory:
lupdate <filename>.pro
(e.g. lupdate x2goclient.pro)
- Start Qt Linguist and open your translation file. Remember to go to Edit → Translation File Settings and set the correct target language. When you are done translating, save the file.
- If you want to verify your translation, you have to build the software with the new/updated language file, here's a brief instruction on how to build x2goclient on Debian:
- Install build dependencies (specific for X2Go Client)
sudo apt-get install libldap2-dev libssh-dev libcups2-dev
- Open resources.rcc in a text editor and add a line for the new qm file, example:
<file>x2goclient_sv.qm</file>
- Build qm files from all ts files:
lrelease *.ts - Configure the build:
./config_linux.sh - Build x2goclient:
make clean; make
- If everything works out you have a new binary to test:
./x2goclient - If you find anything that needs correcting, update the ts and qm files and rebuild the binary (make clean; make).
- When you have verified that the language file is correct, move on to adding it to git (below).
- Back in the terminal again we need to tell git about the new file we added (your language file, technically it was created with the lupdate process):
git add <your-new-and/or-changed-files.ts>
- Then we need to commit our changes to our local clone of the git repository:
git commit -m "change comment (in english)" <filename, e g x2goclient_sv.ts>
- The last part is to create the actual patch, example patch with the last commit included:
git format-patch -1
- You should then have a newly created patch-file in your current directory which you now should attach to a mail you send to x2go-i18n@lists.berlios.de.
For more information related to Git, look here: http://git-scm.com/
Translating pinentry-x2go
Translating pyhoca-gui
The pyhoca-gui X2Go client applet uses gettext (.po/.mo files). The translation process is described in the README.i18n file within pyhoca-gui's source tree: http://code.x2go.org/gitweb?p=pyhoca-gui.git;a=blob;f=README.i18n
Translating x2godesktopsharing
The x2godesksharing applet uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, .ts files). Thus, see above.
Translating x2gognomebindings
Translating x2goplasmabindings
The plasma-widget-x2go plasmoid uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, .ts files). Thus, see above.
Translating x2goadmincenter
The x2goadmincenter application uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, .ts files). Thus, see above.
Note: x2goadmincenter is still under development and not at all finished.