Difference between revisions of "Language Translation"

From Mumble Wiki
Jump to: navigation, search
(Make clear that *.qm files have to live next to the executable)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Mumble currently (Oct. 2012) supports 17 different languages. As more people get to know and use Mumble, versions in their native languages become more and more important.
+
As of March 2014 Mumble [https://www.transifex.com/projects/p/mumble/ supports 18 different languages]. As more people get to know and use Mumble, versions in their native languages become more and more important. Translating is one way to [[Contributing|contribute]] to the Mumble project, and we’re thankful for any help!
  
Translating is one way to [[Contributing|contribute]] to the Mumble project, and we’re thankful for any help!
+
==Translation process==
 +
Since we moved from a manual process to the hosted Transifex in 2014 the process of translating has become a lot easier.
 +
The editor is usable with any standard webbrowser:<br />
 +
[[File:Transifex_working_ui.png|400px]]
  
== Updating or Adding a Translation ==
+
Although there is an adequately high quality requirement for release-ready translations, we appreciate any contributions. If you want to make sure a language ships you will have to become a coordinator, which is probably a bit more time intensive than just translating strings as you will have to make sure translations are consistent in their entirety, and that they meet a certain quality level. You do not need ANY coding skills in order to translate Mumble however, just time and patience.
If you want to help extend an existing translation or create one for a language we do not support yet read this guide on how to update the language files for Mumble.
 
  
You can find a list of existing translations and their status [[Language_Translation_State|here]].
+
In order to package a translation in a stable release we require a trusted translator (which you could become) that translated/reviewed all translations of that language. We appreciate any translation contributions from everyone but require this additional review step to make sure no bad manner or wrong translations go into one of our stable releases.
  
==What You Should Know==
+
==Registering to our Forums==
If you are planning on translating to a language, please make sure and accurately translate it completely, and when it is added to Mumble, run Mumble and check over all the text, ensuring that it is accurately and properly translated, and that there is no text overlapping/incorrectly formatted. If it has any of these problems then revise the text and resubmit it. However, please at least double check the language ''before'' submitting it.
+
This step is optional but we still believe it is a good idea:
  
==Getting Started==
+
If you don't have one already you should register an account [http://forums.mumble.info/ on our forums].
If you are running Windows then go [http://mumble.info/linguist/ here]. Download '''linguist.7z''' and extract it using [http://www.7-zip.org/ 7-zip]. Put the '''linguist.exe''' it in your '''C:\Program Files (x86)\Mumble''' directory. Make sure you run the latest developer snapshot available from [http://mumble.sourceforge.net/ our page].
 
  
If you are running Linux you will need the Qt Development kit (you need the Qt Linguist program that comes with it). You can find it [https://qt-project.org/downloads here]. You can manually compile it but this is much faster.
+
If you have any trouble the steps below or any other questions with regards to translating Mumble the [http://forums.mumble.info/viewforum.php?f=18 Translations sub-forum] is the ideal place to ask.
  
It is also suggested that you peruse [http://doc.qt.digia.com/4.7/linguist-translators.html this guide] to Qt Linguist before continuing with this guide. Please note if you are using Linux you must adapt this guide to all equivalent Linux related commands and procedures.
+
==Getting an Account on Transifex==
 +
If you do not have a Transifex account yet you need to [https://www.transifex.com/signup/contributor/ create a contributor account].
  
You will now need the Mumble ts translation files (e.g. '''mumble_en.ts''') extracted from '''linguist.7z'''. Remember that these files will change as new versions of Mumble are released. Make sure to always use the latest '''linguist.7z''' (alternatively you can get the newest translation files from [https://github.com/mumble-voip/mumble/tree/master/src/mumble our repository]).
+
[[File:Transifex_register.png|300px]]
  
Launch the '''linguist.exe''' you placed in '''C:\Program Files (x86)\Mumble''' by double clicking it (we recommend making a shortcut on your Desktop to Qt Linguist to speed up the process). Now click '''File -> Open...''' and select the ts file you want to modify:
+
You will receive an email with an account activation link. After account activation, log in, and open [https://www.transifex.com/projects/p/mumble/ the Transifex Mumble project page at https://www.transifex.com/projects/p/mumble/].
  
[[File:Qtlinguist_open_translation_files.png|500px]]
+
If the language you want to translate into is already listed you will [[#Translating|want to join that translation team]]. If your desired language is not listed yet you can [[#Requesting_a_new_language|request a new language]] as well.<br />
 +
[[File:Mumble_project.png|300px]]
  
If you want to translate to a new language open '''mumble_en.ts''' instead.
+
==Translating==
 +
Click on the language you want to update/improve, then on "Join team" in order to be able to submit translations:<br />
 +
[[File:Transifex_join_button.png]]
  
For new languages a target language selection dialog should pop up:<br />
+
Confirm the popup:<br />
[[File:Qtlinguist_settings_for_ts_file.png]]
+
[[File:Popup_join_language_team.png|300px]]
  
If not open it by clicking on '''Edit -> Translation File Settings...'''. In the '''Target language''' box make sure the language you are translating to is selected.
+
You get a confirmation message:<br />
 +
[[File:Transifex_team_joined.png]]
  
 +
Now you can click on the entry "mumble_en.ts":<br />
 +
[[File:Transifex_open_lang_popup.png]]
  
[[File:Linguist-navigation-buttons.png]]
+
Then click on "Translate now" to start your work:<br />
 +
[[File:Transifex_translation_popup.png|300px]]
  
You can use Linguists navigation buttons to jump to unfinished translations and mark them as translated once you are done.
+
You may want to continue with the [[#anchor_ui|Introduction to the Transifex user interface]].
  
There are various mechanisms that aid you in the translations and these are explained in the Qt Linguist [http://doc.qt.digia.com/4.7/linguist-translators.html guide].
+
==Requesting a new language==
 +
You don't need to do the complete translation; just do what you can. Once you started a new language others can help to extend and finish it.
  
For example, if you open mumble_de.ts, you will see this:<br />
+
Click on "Request language" and select your desired language, for example Esperanto:<br />
[[File:Qtlinguist opened file.png|500px]]
+
[[File:Mumble_request_esperanto.png|300px]]
  
When you save the file for a new translation make sure to name it in the language you are translating to. For instance if you were translating to Russian you would save the file as "mumble_ru.ts". Otherwise just overwrite the existing file.
+
Once the language has been added you can [[#Translating|start translating]].
  
When you save the file for an existing translation make sure to change the file type to '''"Qt translation source (latest format) (*.ts)"''' and overwrite the existing file:<br />
 
[[File:Qtlinguist save as ts.png|500px]]
 
  
 +
==<span id="anchor_ui">Working With The Transifex User Interface</span>==
 +
This is your User Interface:<br />
 +
[[File:Transifex_working_ui.png|500px]]
  
Remember, translations a slow, precise work and require much translation effort. You do not need ANY coding skills in order to translate Mumble however, just time and patience. Take at least a couple of days to make sure you have accurately translated each section. You can periodically save it and come back to it of course. If you come to a word or phrase that cannot be accurately translated, please leave it in the default English language, if an entire entry cannot be translated correctly, just leave that particular entry blank.  When you are done with the entire translation, click File -> Save.
+
Transifex [http://support.transifex.com/customer/portal/articles/972120-introduction-to-the-web-editor provides a good documentation for the user interface].
  
==Testing The Results==
+
* You can change your UI language in the bottem left corner.
The language file can now be tested. Open your language file in Linguist and do '''File -> Release As...''' then save it to your Desktop. You should now have mumble_*.qm (where * is the abbreviation of the language you are translating, for instance if it was Polish you were translating to it would be mumble_pl.qm). Go to your Mumble folder and put the mumble_*.qm file inside of it. Now start Mumble and make sure that your language is set for "System default" in the user interface section of the Mumble configuration. Windows should also be set to use the language you are translating. The language should be displayed in Mumble when you start/restart Mumble.
+
* [http://support.transifex.com/customer/portal/articles/1021138-keyboard-shortcuts Keyboard Shortcuts]
  
==Submitting The File==
+
==Testing The Results (intended for developers only)==
Submit the file that you translated (mumble_*.ts) [http://sourceforge.net/tracker/?group_id=147372&atid=768007 here]. Archive your ts file (e.g. zip it) and attach it to the post. On the title put <language you have translated> Translation. The Mumble developers will take your translation file and add it to Mumble. Remember, do ''not'' submit the file as a compiled .qm file, as the Mumble developers cannot properly use this type of file.
+
To test the resulting translation click on the entry "mumble_en.ts" and then "Download for use" in the popup:<br />
 +
[[File:Popup_download_ts_file.png|300px]]
  
==Installer translations==
+
In order for the Mumble client to use the translations the ts file will have to be converted to a qm file. Open the ts file you downloaded with Qt Linguist, and then “Release as” to save a qm file, naming it mumble_<lang-shorthand>.qm.
With the guide above you can translate the client itself. For the windows platform mumble has an installer which has to be independently translated. For information on how to do this see [[Windows installers translations]].
 
  
==Becoming Part of the Project==
+
Go to your Mumble folder and place the mumble_*.qm file next to the Mumble executable (e.g. <code>mumble.exe</code> on Windows). Now start Mumble and make sure that your language is set in the user interface section of the Mumble configuration. The language should be displayed in Mumble after you restart the client.
If you would like to be a regular translating member of the Mumble project, please apply to be a translator here:
 
  
https://lists.sourceforge.net/mailman/listinfo/mumble-translations
+
== Fixing errors in the original English strings ==
 +
If you find a typo or an error in the original English text please report it to our [https://github.com/mumble-voip/mumble/issues issue tracker] and we will fix it. If you feel comfortable around source code and git you can also directly fix the issue in the source and provide us with a pull request on github. Your commit for that should only contain the fix and should not touch the .ts files. If you want you can run [https://github.com/mumble-voip/mumble/blob/master/scripts/updatetranslations.sh scripts/updatetranslations.sh] to generate a commit to update the mumble_en.ts file from the Mumble sources but we can do that for you. No other .ts files need to be changed as our transifex workflow will have them automatically updated by our transifex bot as soon as it picks up on the update.
  
==Integrating new translations==
+
==Installer translations==
* Place mumble_*.ts file in '''src/mumble/''':
+
With the guide above you can translate the client itself. For the windows platform mumble has an installer which has to be independently translated. Unfortunately, because of technical reasons this is currently a separate process. For information on how to translate the installer see [[Windows installers translations]].
* Add file to '''TRANSLATIONS''' in '''src/mumble/mumble.pro'''
 
* If available add Qt translation to '''QT_TRANSLATION_FILES_SRC''' in '''src/mumble/mumble.pro'''
 
* If available add Qt translation to '''mumble_qt.qrc'''
 
* Add file to resources in '''mumble.qrc'''
 
 
 
==Updating translation templates==
 
 
 
We do this regularly so unless you are adding new strings to mumble and want to translate them right away there is no need to run this yourself.
 
  
To update the .ts translation files we use:
 
  
lupdate -no-ui-lines -disable-heuristic similartext -locations relative -no-obsolete mumble.pro
 
 
 
[[Category:Contribution]]
 
[[Category:Contribution]]
 
[[Category:Language]]
 
[[Category:Language]]

Latest revision as of 17:08, 28 December 2020

As of March 2014 Mumble supports 18 different languages. As more people get to know and use Mumble, versions in their native languages become more and more important. Translating is one way to contribute to the Mumble project, and we’re thankful for any help!

Translation process

Since we moved from a manual process to the hosted Transifex in 2014 the process of translating has become a lot easier. The editor is usable with any standard webbrowser:
Transifex working ui.png

Although there is an adequately high quality requirement for release-ready translations, we appreciate any contributions. If you want to make sure a language ships you will have to become a coordinator, which is probably a bit more time intensive than just translating strings as you will have to make sure translations are consistent in their entirety, and that they meet a certain quality level. You do not need ANY coding skills in order to translate Mumble however, just time and patience.

In order to package a translation in a stable release we require a trusted translator (which you could become) that translated/reviewed all translations of that language. We appreciate any translation contributions from everyone but require this additional review step to make sure no bad manner or wrong translations go into one of our stable releases.

Registering to our Forums

This step is optional but we still believe it is a good idea:

If you don't have one already you should register an account on our forums.

If you have any trouble the steps below or any other questions with regards to translating Mumble the Translations sub-forum is the ideal place to ask.

Getting an Account on Transifex

If you do not have a Transifex account yet you need to create a contributor account.

Transifex register.png

You will receive an email with an account activation link. After account activation, log in, and open the Transifex Mumble project page at https://www.transifex.com/projects/p/mumble/.

If the language you want to translate into is already listed you will want to join that translation team. If your desired language is not listed yet you can request a new language as well.
Mumble project.png

Translating

Click on the language you want to update/improve, then on "Join team" in order to be able to submit translations:
Transifex join button.png

Confirm the popup:
Popup join language team.png

You get a confirmation message:
Transifex team joined.png

Now you can click on the entry "mumble_en.ts":
Transifex open lang popup.png

Then click on "Translate now" to start your work:
Transifex translation popup.png

You may want to continue with the Introduction to the Transifex user interface.

Requesting a new language

You don't need to do the complete translation; just do what you can. Once you started a new language others can help to extend and finish it.

Click on "Request language" and select your desired language, for example Esperanto:
Mumble request esperanto.png

Once the language has been added you can start translating.


Working With The Transifex User Interface

This is your User Interface:
Transifex working ui.png

Transifex provides a good documentation for the user interface.

Testing The Results (intended for developers only)

To test the resulting translation click on the entry "mumble_en.ts" and then "Download for use" in the popup:
Popup download ts file.png

In order for the Mumble client to use the translations the ts file will have to be converted to a qm file. Open the ts file you downloaded with Qt Linguist, and then “Release as” to save a qm file, naming it mumble_<lang-shorthand>.qm.

Go to your Mumble folder and place the mumble_*.qm file next to the Mumble executable (e.g. mumble.exe on Windows). Now start Mumble and make sure that your language is set in the user interface section of the Mumble configuration. The language should be displayed in Mumble after you restart the client.

Fixing errors in the original English strings

If you find a typo or an error in the original English text please report it to our issue tracker and we will fix it. If you feel comfortable around source code and git you can also directly fix the issue in the source and provide us with a pull request on github. Your commit for that should only contain the fix and should not touch the .ts files. If you want you can run scripts/updatetranslations.sh to generate a commit to update the mumble_en.ts file from the Mumble sources but we can do that for you. No other .ts files need to be changed as our transifex workflow will have them automatically updated by our transifex bot as soon as it picks up on the update.

Installer translations

With the guide above you can translate the client itself. For the windows platform mumble has an installer which has to be independently translated. Unfortunately, because of technical reasons this is currently a separate process. For information on how to translate the installer see Windows installers translations.