User Tools

Site Tools


wiki:development:i18n

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:development:i18n [2012/11/26 18:46]
dali [Overview of the process]
wiki:development:i18n [2014/08/18 14:18] (current)
sunweaver [Translating X2Go Admin Center]
Line 2: Line 2:
  
 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. 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.
 +
 +**TL;DR;** All translators please send their translation efforts (''​.po''​ files, ''​.ts''​ files or git formatted patches) to the [[http://​lists.x2go.org/​listinfo/​x2go-i18n|X2Go i18n mailing list]]. Please prepare files that have a Unix EOL (line-ending) style. Thank you!
 +
  
 ===== Translatable X2Go components ===== ===== Translatable X2Go components =====
  
-  - [[http://​code.x2go.org/​gitweb?​p=x2goclient.git;​a=summary|x2goclient]] +|  **COMPONENT** ​                                                                       | **da** | **de** | **es** | **et** | **fi** | **fr** ​        | **nb_no** | **nl** | **ru** | **sv** | **zh_tw** ​   | 
-  [[http://​code.x2go.org/​gitweb?​p=pinentry-x2go.git;​a=summary|pinentry-x2go]] +[[http://​code.x2go.org/​gitweb?​p=x2goclient.git;​a=summary|x2goclient]] ​                | x  | x  | x  | x  | x  | incomplete | x     | x  | x  | x  | outdated | 
-  - [[http://​code.x2go.org/​gitweb?​p=pyhoca-gui.git;​a=summary|pyhoca-gui]] +[[http://​code.x2go.org/​gitweb?​p=pinentry-x2go.git;​a=summary|pinentry-x2go]] ​          | -  | x  | x  |  | -  | -          | -     | x  | -  | -  | -        | 
-  - [[http://​code.x2go.org/​gitweb?​p=x2godesktopsharing.git;​a=summary|x2godesktopsharing]] +[[http://​code.x2go.org/​gitweb?​p=pyhoca-gui.git;​a=summary|pyhoca-gui]] ​                | x  | x  | x  |  | -  | -          | x     | x  | x  | x  | -        | 
-  - [[http://​code.x2go.org/​gitweb?​p=x2gognomebindings.git;​a=summary|x2gognomebindings]] +[[http://​code.x2go.org/​gitweb?​p=x2godesktopsharing.git;​a=summary|x2godesktopsharing]] ​| x  | x  | x  |  | -  | x          | x     | x  | x  | x  | -        | 
-  - [[http://​code.x2go.org/​gitweb?​p=x2goplasmabindings.git;​a=summary|x2goplasmabindings]] +[[http://​code.x2go.org/​gitweb?​p=x2gognomebindings.git;​a=summary|x2gognomebindings]] ​  | -  | x  | x  | -  | -  | -          | -     | -  | -  | -  | -        | 
-  - [[http://​code.x2go.org/​gitweb?​p=x2goadmincenter.git;​a=summary|x2goadmincenter ​(under development still)]]+| [[http://​code.x2go.org/​gitweb?​p=x2gomatebindings.git;​a=summary|x2gomatebindings]] ​    | -  | x  | x  |  | -  | -          | -     | x  | -  | -  | -        | 
 +[[http://​code.x2go.org/​gitweb?​p=x2goplasmabindings.git;​a=summary|x2goplasmabindings]] ​| x  | x  | x  |  | -  | x          | x     | x  | x  | x  | -        | 
 +[[http://​code.x2go.org/​gitweb?​p=x2goadmincenter.git;​a=summary|x2goadmincenter]] ​      | -  | x  | -  | -  | x  | -          | -     | incomplete ​ | -  | -  | -        |
  
 ===== Overview of the process ===== ===== Overview of the process =====
Line 21: Line 26:
   - Prepare the patch and send it to the x2go-i18n mailing list   - Prepare the patch and send it to the x2go-i18n mailing list
  
 +
 +
 +<note tip>We try keep a list with words and phrases that are **not** to be translated, i.e. productnames and such, here: [[wiki:​development:​i18n:​nontranslateable|wiki:​development:​i18n:​nontranslateable]]</​note>​
  
 <note tip>​Microsoft has an online terminology search at http://​www.microsoft.com/​Language/​en-US/​Default.aspx. Very useful if you want to find commonly used translations.</​note>​ <note tip>​Microsoft has an online terminology search at http://​www.microsoft.com/​Language/​en-US/​Default.aspx. Very useful if you want to find commonly used translations.</​note>​
 +
 +
 ===== The process in detail ===== ===== The process in detail =====
  
Line 31: Line 41:
   - 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//​. ​   - 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.    - 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+    - Follow the instructions on cloning a git repository from here: [[wiki:​development:​git|wiki:​development:​git]]
     - Also remember to follow the instructions there on how to set your name and email in 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     - 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: <code text>​TRANSLATIONS += x2goclient_sv.ts</​code>:​!:​ Some locales have both language and territory specified, e.g. the file for the Bokmal languague in Norway is named **x2goclient_nb_no.ts**.   - 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: <code text>​TRANSLATIONS += x2goclient_sv.ts</​code>:​!:​ 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:<​code bash>​lupdate <​filename>​.pro</​code>​(e.g. //lupdate x2goclient.pro//​)   - After adding the intended language we need to get the actual language file created. Run this in the same directory:<​code bash>​lupdate <​filename>​.pro</​code>​(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.+  - Start Qt Linguist ​(linguist-qt4) ​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:   - 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)<​code bash>​sudo apt-get install libldap2-dev libssh-dev libcups2-dev libgd2-xpm-dev</​code>​     - Install build dependencies (specific for X2Go Client)<​code bash>​sudo apt-get install libldap2-dev libssh-dev libcups2-dev libgd2-xpm-dev</​code>​
Line 49: Line 59:
   - Then we need to commit our changes to our local clone of the git repository:<​code bash>git commit -m "​change comment (in english)"​ <​filename,​ e g x2goclient_sv.ts></​code>​   - Then we need to commit our changes to our local clone of the git repository:<​code bash>git commit -m "​change comment (in english)"​ <​filename,​ e g x2goclient_sv.ts></​code>​
   - The last part is to create the actual patch, example patch with the last commit included:<​code bash>git format-patch -1</​code>​   - The last part is to create the actual patch, example patch with the last commit included:<​code bash>git format-patch -1</​code>​
-  - 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]].+  - 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.x2go.org]].
  
 For more information related to Git, look here: http://​git-scm.com/​ For more information related to Git, look here: http://​git-scm.com/​
 ==== Translating pinentry-x2go ==== ==== Translating pinentry-x2go ====
  
-FIXME+X2Go's pinentry tool uses the same translation mechanism as X2Go Client (Qt4, Qt-Linguist,​ .ts files). Thus, see above. The ''​.ts''​ files are in the subfolder ''​pinentry-x2go/''​ of the project'​s source tree. 
 + 
 +==== Translating PyHoca-GUI ==== 
 + 
 +For PyHoca-GUI as a translater you have to use a gettext compatible (.po/.mo files) editor like '''​poedit'''​. The translation process is described in the ''​[[http://​code.x2go.org/​gitweb?​p=pyhoca-gui.git;​a=blob;​f=README.i18n|README.i18n]]''​ file within PyHoca-GUI'​s source tree. 
 + 
 +Please also note that there is an NSIS installer (for the win32 version of PyHoca-GUI),​ that also has a few translatable strings. Check the ''​nsis_include/''​ subfolder in the PyHoca-GUI source tree. 
 + 
 +==== Translating X2Go Desktop Sharing ==== 
 + 
 +The X2Go Desktop Sharing applet uses the same translation mechanism as X2Go Client (Qt4, Qt-Linguist,​ .ts files). Thus, see above.
  
-==== Translating ​pyhoca-gui ​====+==== Translating ​X2Go GNOMEv2 / MATE Bindings ​====
  
-The pyhoca-gui X2Go client applet uses gettext ​(.po/.mo files). The translation process is described in the README.i18n file within pyhoca-gui'source tree: http://​code.x2go.org/​gitweb?​p=pyhoca-gui.git;​a=blob;​f=README.i18n+For translating the similar projects ''​x2gognomebindings'' ​(GNOMEv2 onlyand ''​x2gomatebindings''​ you need a gettext based editor like ''​poedit''​. The ''​.po'' files are in the po/ subfolder in the source tree.
  
-==== Translating x2godesktopsharing ====+Additionally,​ the GNOMEv2 / MATE Bindings package ships a desktop file that needs to be translated:
  
-The x2godesksharing applet uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, ​.ts files)Thus, see above.+<​file>​ 
 +[Desktop Entry] 
 +Name=Suspend X2Go session 
 +Name[de]=X2Go Sitzung unterbrechen 
 +... 
 +Name[<​your_lang>​]=<​your_translation>​ 
 +... 
 +Icon=exit 
 +Exec=x2gosuspend-session-mate 
 +Terminal=false 
 +Type=Application 
 +Categories=GTK;​Network 
 +OnlyShowIn=MATE;​ 
 +</​file>​
  
-==== Translating ​x2gognomebindings ​====+==== Translating ​X2Go Plasma/KDE4 Bindings ​====
  
-FIXME+The ''​plasma-widget-x2go''​ plasmoid uses the same translation mechanism as X2Go Client (Qt4, Qt-Linguist,​ .ts files). Thus, see above.
  
-==== Translating ​x2goplasmabindings ​====+==== Translating ​X2Go Admin Center ​====
  
-The plasma-widget-x2go plasmoid ​uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist,​ .ts files). Thus, see above.+The X2Go Admin Center application ​uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist,​ .ts files). Thus, see above.
  
-==== Translating x2goadmincenter ====+Important: X2Go Admin Center has several .ts files to tackle (e.g. the Dutch translator has to work on all these four files):
  
-The x2goadmincenter ​application uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, ​.ts files)Thus, see above.+<​file>​ 
 +x2goadmincenter/​x2goadmincenter_nl.ts 
 +x2goadmincenter/​modules/​x2gogroupadmingui/​x2gogroupadmingui_nl.ts 
 +x2goadmincenter/​modules/​x2gouseradmingui/​x2gouseradmingui_nl.ts 
 +x2goadmincenter/​modules/​x2gosessionadmingui/​x2gosessionadmingui_nl.ts 
 +</​file>​
  
-Note: x2goadmincenter ​is still under development and not at all finished.+Note: X2Go Admin Center ​is still under development and not at all finished.
  
wiki/development/i18n.txt · Last modified: 2014/08/18 14:18 by sunweaver