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/12/18 22:21]
tan [Internationalization (i18n of X2Go)]
wiki:development:i18n [2014/08/18 14:18]
sunweaver [Translating X2Go Admin Center]
Line 3: Line 3:
 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.
  
-<note tip>We try keep a list with words and phrases that are **not** to be translated, i.eproductnames and suchhere: [[wiki:development:i18n:nontranslateable|wiki:development:i18n:nontranslateable]]</note>+**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 22: 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 32: 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 50: 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: 2018/06/21 21:50 by ionic