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
Next revision Both sides next revision
wiki:development:i18n [2012/09/08 05:34]
dali [Translating x2goclient]
wiki:development:i18n [2014/11/04 10:44]
markcookatfleten [Translatable X2Go components]
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 make sure that your files 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  | incomplete  | x  | incomplete | incomplete | x  | incomplete  | incomplete  | 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  |  | 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  |  | broken / all-fuzzy  | - | incomplete | x | incomplete | 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  | 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  | x  | -  | 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  |  | x  | -          | -     | x  | -  | -  | -        | 
 +[[http://code.x2go.org/gitweb?p=x2goplasmabindings.git;a=summary|x2goplasmabindings]] | x  | x  | x  |  | x  | x          | x     | x  | x  | x  | -        | 
 +[[http://code.x2go.org/gitweb?p=x2goadmincenter.git;a=summary|x2goadmincenter]]       | x  | x  | x  | -  | x  | -          | -     | x  | -  | -  | -        | 
 +| [[http://code.x2go.org/gitweb?p=x2goserver.git;a=summary|x2goserver]]                 | x  | x  | -  | -  | -  | -          | -     | -  | -  | -  | -        | 
 +| [[http://code.x2go.org/gitweb?p=x2gothinclient.git;a=summary|x2gothinclient]]         | x  | x  | -  | -  | -  | -          | -     | -  | -  | -  | -        |
  
 ===== Overview of the process ===== ===== Overview of the process =====
Line 20: Line 27:
   - Translate the language file   - Translate the language file
   - 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>
  
  
Line 30: Line 43:
   - 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 48: Line 61:
   - 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 X2Go GNOMEv2 / MATE Bindings ==== 
 + 
 +For translating the similar projects ''x2gognomebindings'' (GNOMEv2 only) and ''x2gomatebindings'' you need a gettext based editor like ''poedit''. The ''.po'' files are in the po/ subfolder in the source tree. 
 + 
 +Additionally, the GNOMEv2 / MATE Bindings package ships a desktop file that needs to be translated: 
 + 
 +<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 pyhoca-gui ====+==== Translating X2Go Plasma/KDE4 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's source tree: http://code.x2go.org/gitweb?p=pyhoca-gui.git;a=blob;f=README.i18n+The ''plasma-widget-x2go'' plasmoid uses the same translation mechanism as X2Go Client (Qt4, Qt-Linguist, .ts files). Thus, see above.
  
-==== Translating x2godesktopsharing ====+==== Translating X2Go Admin Center ====
  
-The x2godesksharing applet 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 x2gognomebindings ====+Important: X2Go Admin Center has several .ts files to tackle (e.g. the Dutch translator has to work on all these four files):
  
-FIXME+<file> 
 +x2goadmincenter/x2goadmincenter_nl.ts 
 +x2goadmincenter/modules/x2gogroupadmingui/x2gogroupadmingui_nl.ts 
 +x2goadmincenter/modules/x2gouseradmingui/x2gouseradmingui_nl.ts 
 +x2goadmincenter/modules/x2gosessionadmingui/x2gosessionadmingui_nl.ts 
 +</file>
  
-==== Translating x2goplasmabindings ====+Note: X2Go Admin Center is still under development and not at all finished.
  
-The plasma-widget-x2go plasmoid uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, .ts files). Thus, see above.+==== Translating X2Go Server ====
  
-==== Translating x2goadmincenter ====+For X2Go Server 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=x2goserver.git;a=blob;f=README.i18n|README.i18n]]'' file within X2Go Server's source tree.
  
-The x2goadmincenter application uses the same translation mechanism as x2goclient (Qt4, Qt-Linguist, .ts files). Thus, see above.+==== Translating X2Go Thin Client ====
  
-Note: x2goadmincenter is still under development and not at all finished.+For X2Go Thin Client 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=x2gothinclient.git;a=blob;f=README.i18n|README.i18n]]'' file within X2Go Thin Client's source tree.
  
wiki/development/i18n.txt · Last modified: 2018/06/21 21:50 by ionic