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/12/18 22:21]
tan [Internationalization (i18n of X2Go)]
wiki:development:i18n [2018/06/21 21:50] (current)
ionic Switch to HTTPS links.
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 [[https://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** | **tr** | **zh_tw**    | 
-  [[http://code.x2go.org/gitweb?p=pinentry-x2go.git;a=summary|pinentry-x2go]] +[[https://code.x2go.org/gitweb?p=x2goclient.git;a=summary|x2goclient]]                 | x  | x  | incomplete | incomplete  | x  | very incomplete | x | incomplete | incomplete  | x | x | outdated | 
-  - [[http://code.x2go.org/gitweb?p=pyhoca-gui.git;a=summary|pyhoca-gui]] +[[https://code.x2go.org/gitweb?p=pinentry-x2go.git;a=summary|pinentry-x2go]]           | x  | x  | x  |  | x  | -          | -     | x  | -  | -  | x | - | 
-  - [[http://code.x2go.org/gitweb?p=x2godesktopsharing.git;a=summary|x2godesktopsharing]] +[[https://code.x2go.org/gitweb?p=pyhoca-gui.git;a=summary|pyhoca-gui]]                 | x  | x  | x  |  | x  | - | incomplete | x | incomplete | x  | x | - |    
-  - [[http://code.x2go.org/gitweb?p=x2gognomebindings.git;a=summary|x2gognomebindings]] +[[https://code.x2go.org/gitweb?p=x2godesktopsharing.git;a=summary|x2godesktopsharing]] | x  | x  | x  |  | x  | x          | x     | x  | x  | x  | x | - | 
-  - [[http://code.x2go.org/gitweb?p=x2goplasmabindings.git;a=summary|x2goplasmabindings]] +[[https://code.x2go.org/gitweb?p=x2gognomebindings.git;a=summary|x2gognomebindings]]   | x  | x  | x  | -  | x  | -          | -     | x  | -  | -  | x | - | 
-  - [[http://code.x2go.org/gitweb?p=x2goadmincenter.git;a=summary|x2goadmincenter (under development still)]]+| [[https://code.x2go.org/gitweb?p=x2gomatebindings.git;a=summary|x2gomatebindings]]     | x  | x  | x  |  | x  | -          | -     | x  | -  | -  | x | - | 
 +[[https://code.x2go.org/gitweb?p=x2goplasmabindings.git;a=summary|x2goplasmabindings]] | x  | x  | x  |  | x  | x          | x     | x  | x  | x  | x | - | 
 +[[https://code.x2go.org/gitweb?p=x2goadmincenter.git;a=summary|x2goadmincenter]]       | x  | x  | x  | -  | x  | -          | -     | x  | -  | -  | x | - | 
 +| [[https://code.x2go.org/gitweb?p=x2goserver.git;a=summary|x2goserver]]                 | x  | x  | -  | -  | -  | -          | -     | -  | -  | -  | x | - | 
 +| [[https://code.x2go.org/gitweb?p=x2gothinclient.git;a=summary|x2gothinclient]]         | x  | x  | -  | -  | -  | -          | -     | -  | -  | -  | x | - |
  
 ===== Overview of the process ===== ===== Overview of the process =====
Line 23: Line 29:
  
  
-<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>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 https://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 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 50: 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: https://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 ''[[https://code.x2go.org/gitweb?p=pyhoca-gui.git;a=blob;f=README.i18n|README.i18n]]'' file within PyHoca-GUI's source tree. 
 + 
 +<note>**Package-maintainers-only:** to update the translation template, run <code bash>python setup.py build_i18n</code> and to merge the updated template file into the source translation files, use <code bash>python setup.py build_i18n -m</code></note> 
 + 
 +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 ''[[https://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.1355869264.txt.gz · Last modified: 2013/03/08 13:31 (external edit)