Actions

Translating LimeSurvey: Difference between revisions

From LimeSurvey Manual

No edit summary
 
mNo edit summary
 
(64 intermediate revisions by 12 users not shown)
Line 1: Line 1:
<languages /> <translate>
<!--T:1-->
__TOC__
=Translating LimeSurvey= <!--T:2-->
<!--T:3-->
Wouldn't it be great to have LimeSurvey completely translated to your native language? The LimeSurvey team is always on the lookout for new translations and for people who help update the existing ones. Please read these instructions and don't hesitate to send an email to [mailto:translations@limesurvey.org translations@limesurvey.org] if you are in doubt or have any other questions.
=How to translate - step-by-step instructions= <!--T:4-->


__TOC__
==Updating an existing translation== <!--T:5-->
#Sign up on [https://www.limesurvey.org the LimeSurvey website] and then log in to [https://www.limesurvey.org/login your account].
#Go to [https://translate.limesurvey.org https://translate.limesurvey.org] and log in there with the same username and password.
#Pick the LimeSurvey version you want to translate and simply get started. After your translation is approved, it will automatically be included in the weekly stable release and your username will be credited in the change log.
#If you are interested in becoming a prime translator for your language with the ability to approve newly translated strings, please contact us at [mailto:translations@limesurvey.org translations@limsurvey.org]. Such a position requires a maximum of about an hour of work per week - it's important to us that you are reliable in doing this.
 
==Customize an existing translation== <!--T:6-->
 
<!--T:7-->
Sometimes you might want to modify an existing translation so it accommodates your particular survey situation better. In that case, do the following:
#Go to [https://translate.limesurvey.org https://translate.limesurvey.org], pick the LimeSurvey version you want to translate and the particular language you want to modify.
#On the bottom of the translation page you will find an option to export all strings as *.po file. Click on the export and save it as *.po file to your local hard-disk:<br />[[File:export_po_file.png]]
#Download and install [http://www.poedit.net/download.php Poedit].
#Start Poedit and edit the downloaded *.po file - modify the particular translations.
#When you save the *.po file, a *.mo file is automatically created. The latter will be read by LimeSurvey.
#The last step is to place the particular *.mo file in the right language folder in /locale by replacing the existing one.
{{Note|For example, the location for French would be <LimeSurvey_root_directory>/locale/fr/LC_MESSAGES/fr.po.}}
 
<!--T:8-->
<div class="simplebox"> Note: If you are using [https://www.limesurvey.org/editions-and-prices/limesurvey-pro/editions-and-prices-professional LimeSurvey Pro](only for Cooperate and Enterprise users), the team will be happy to place the file for you. Just create a [mailto:support@limesurvey.org support ticket] and attach the *.po file (<u>'''not''' the .*mo</u>).</div>
 
==Creating a new translation== <!--T:9-->
#First of all, get access to the development version of LimeSurvey. For detailed instructions, access the [[Accessing the source code|source code]].
#Download and install [https://www.poedit.net/download.php Poedit] .
#Now you have to find out the language-code for your language - you can search for your language-code in the [https://r12a.github.io/app-subtags/ IANA Language Subtag Registry].
#Go into the /locale directory (located in the LimeSurvey root directory) and create a directory named after your language code.
#Download your language template by going to on the following link [https://translate.limesurvey.org/projects/]. Select the project, then any language (e.g. go for the English entry), and scroll to the bottom. There you have the possibility to export the language file as <your_language_code>.po file.
#Copy the <your_language_code>.po file to the newly created folder located in the /locale directory.
#Open the file with Poedit and translate everything you need to translate.
#To make LimeSurvey know about your language, you must add it in application/helpers/surveytranslator_helper.php (located in the LimeSurvey root directory). Open that file with a text editor and add your language in the same way the other languages are defined in that file.
#Save - in order to allow LimeSurvey to see the newly added language, save the modified *.po file. This will automatically generate the *.mo file in the same folder, which will be read by LimeSurvey.
#Send the new *.po file and the updated surveytranslator_helper.php file to [mailto:translations@limesurvey.org translations@limesurvey.org].
 
<!--T:11-->
{{Note|If your language use a lot of special character : please check what font must be used for pdf generation (check with dejavusans for example). Then we can add this font file in [[Optional_settings#Statistics_and_response_browsing|alternatepdffontfile]] default configuration.}}
 
<!--T:10-->
{{Note|If you want your name to be linked from/shown on the team page, please write so in the email!}}


=Translating LimeSurvey=
=== Sample code for add a new language === <!--T:15-->


Wouldn't it be great to have LimeSurvey completely translated to your mother-language? The LimeSurvey team is always on the look-out for new translations and for people who help to update the existing ones. Please read this instructions and don't hesitate to ask your doubts to translations@limesurvey.org.
<!--T:16-->
<syntaxhighlight lang="php">
    $supportedLanguages['code']['description'] = gT('Language'); // Your language name in English
    $supportedLanguages['code']['nativedescription'] = 'Language in native';  // The native name of your language
    $supportedLanguages['code']['rtl'] = (true|false); // RTL
    $supportedLanguages['code']['dateformat'] = integer; // See getDateFormatData function
    $supportedLanguages['code']['radixpoint'] = (0|1); // 0 : ., 1 : , for radix point
    $supportedLanguages['code']['cldr'] = 'code';  // If the related Yii language code differs you can here map your language to a new code
    $supportedLanguages['code']['momentjs'] = 'code'; // Used by moment.js
</syntaxhighlight>


=How to translate - Step-by-Step instructions=
=== Other part to be translated === <!--T:17-->


==Updating an existing language file==
<!--T:18-->
#Download and install [http://www.poedit.net/download.php poEDIT]
* LimeSurvey use [https://momentjs.com/ moment.js]. When you send the message to [mailto:translations@limesurvey.org translations@limesurvey.org] check what language code must be used.
#Go to [http://www.limesurvey.org/en/contribute/translations-status this translation status page] and download the latest .po file for your language. '''Do not use the one in your installation since it may not contain all untranslated strings.'''
#Open the .po file with poEdit.
#Now edit the file. Every time you save the file not only the po.file will be saved , but also the .mo file will be saved. The .mo file is the compiled file that LimeSurvey is using and reading from.
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that it is better to have no translation than a wrong one!
#Save. Put the .mo file into the live directory of your LimeSurvey installation. You will find the file for your particular language in the /locale/your_language_code/LC_MESSAGES/ folder.
#Send the updated .po-File to translations@limesurvey.org.


==Creating a language file for a new language==
<!--T:14-->
#First of all get access to the development version of LimeSurvey. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]
* '''[https://momentjs.com/ moment.js]''' : method to contribute to moment.js translation are explained at [https://momentjs.com/docs/#/i18n moment.js documentation].
#Download and install [http://www.poedit.net/download.php poEDIT]
#Now you have to find out the language-code for your language - you can search for your language-code in the [http://people.w3.org/rishida/utils/subtags/ IANA Language Subtag Registry].
#Go to the /locale directory and create a directory named after your language code.
#Inside that directory create a directory named LC_MESSAGES.
#Now create a language file with poEdit. Save the (yet) empty file to that dir (in the /locale/your_language_code/LC_MESSAGES/ folder). The file has to be be named according to your language-code. (look into the other directory for examples)
#In poEdit do the following:
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab
##Delete the existing path and add a new one pointing to the downloaded LimeSurvey sources
##Click on the ''Keywords'' tab, click on new item
##Add the keywords: 'gT' and 'ngT' (without quotes, of course)
##Press 'OK' to close the settings.
##Open the menu entry ''Catalog/Update from Sources''
##If you did everything right it should now find all untranslated strings and add it to the .po file
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!
#To make LimeSurvey know about your language you must add it to the file classes/core/surveytranslator.php. Open that file with a text editor and add your language in the same way the other languages in that file are defined.
#Save. Send the new .po-File and the updated surveytranslator.php file to carsten.schmitz@limesurvey.org . If you want your name to be linked from/shown on the team-page please write so in the e-mail!


==Updating the existing translation with direct subversion access==
</translate>
#First of all get access to the latest stable source version of LimeSurvey in Subversion. You can find detailed instructions how to get your hands on it on this page: [[Accessing the source code]]
#Download and install [http://www.poedit.net/download.php poEDIT]
#Open the existing .po language file with poEdit. You can find it in the /locale/the_language_code/LC_MESSAGES/ folder.
##Open menu ''Catalog/Settings'', enter the ''Paths''-Tab
##Delete the existing path and add a new one pointing to root directory the downloaded LimeSurvey1 sources
##Click on the ''Keywords'' tab, click on new item
##Add the keywords: 'gT' and 'ngT' (without quotes, of course)
##Press 'OK' to close the settings.
##Open the menu entry ''Catalog/Update from Sources''
##If you did everything right it should now find all untranslated strings and add it to the .po file
#Translate everything you need to translate. The yellowish marked items are 'unclear' translations and you should check/correct these first. Remember that is better to have no translation than a wrong one!
#Save. TortoiseSVN (or whatever client you chose) should show now that the .po and the .mo file have been modified.
#Mark the changed files and choose Commit (wit TortoiseSVN use the right-click popup-menu) to commit your files to the repository. To be able to commit files you will need to register a free account on http://sf.net and tell Carsten Schmitz ( carsten.schmitz@limesurvey.org ) your sf.net username so he can give according write access to you.

Latest revision as of 00:34, 3 December 2021

Translating LimeSurvey

Wouldn't it be great to have LimeSurvey completely translated to your native language? The LimeSurvey team is always on the lookout for new translations and for people who help update the existing ones. Please read these instructions and don't hesitate to send an email to translations@limesurvey.org if you are in doubt or have any other questions.

How to translate - step-by-step instructions

Updating an existing translation

  1. Sign up on the LimeSurvey website and then log in to your account.
  2. Go to https://translate.limesurvey.org and log in there with the same username and password.
  3. Pick the LimeSurvey version you want to translate and simply get started. After your translation is approved, it will automatically be included in the weekly stable release and your username will be credited in the change log.
  4. If you are interested in becoming a prime translator for your language with the ability to approve newly translated strings, please contact us at translations@limsurvey.org. Such a position requires a maximum of about an hour of work per week - it's important to us that you are reliable in doing this.

Customize an existing translation

Sometimes you might want to modify an existing translation so it accommodates your particular survey situation better. In that case, do the following:

  1. Go to https://translate.limesurvey.org, pick the LimeSurvey version you want to translate and the particular language you want to modify.
  2. On the bottom of the translation page you will find an option to export all strings as *.po file. Click on the export and save it as *.po file to your local hard-disk:
  3. Download and install Poedit.
  4. Start Poedit and edit the downloaded *.po file - modify the particular translations.
  5. When you save the *.po file, a *.mo file is automatically created. The latter will be read by LimeSurvey.
  6. The last step is to place the particular *.mo file in the right language folder in /locale by replacing the existing one.
For example, the location for French would be <LimeSurvey_root_directory>/locale/fr/LC_MESSAGES/fr.po.
Note: If you are using LimeSurvey Pro(only for Cooperate and Enterprise users), the team will be happy to place the file for you. Just create a support ticket and attach the *.po file (not the .*mo).

Creating a new translation

  1. First of all, get access to the development version of LimeSurvey. For detailed instructions, access the source code.
  2. Download and install Poedit .
  3. Now you have to find out the language-code for your language - you can search for your language-code in the IANA Language Subtag Registry.
  4. Go into the /locale directory (located in the LimeSurvey root directory) and create a directory named after your language code.
  5. Download your language template by going to on the following link [1]. Select the project, then any language (e.g. go for the English entry), and scroll to the bottom. There you have the possibility to export the language file as <your_language_code>.po file.
  6. Copy the <your_language_code>.po file to the newly created folder located in the /locale directory.
  7. Open the file with Poedit and translate everything you need to translate.
  8. To make LimeSurvey know about your language, you must add it in application/helpers/surveytranslator_helper.php (located in the LimeSurvey root directory). Open that file with a text editor and add your language in the same way the other languages are defined in that file.
  9. Save - in order to allow LimeSurvey to see the newly added language, save the modified *.po file. This will automatically generate the *.mo file in the same folder, which will be read by LimeSurvey.
  10. Send the new *.po file and the updated surveytranslator_helper.php file to translations@limesurvey.org.
If your language use a lot of special character : please check what font must be used for pdf generation (check with dejavusans for example). Then we can add this font file in alternatepdffontfile default configuration.
If you want your name to be linked from/shown on the team page, please write so in the email!

Sample code for add a new language

    $supportedLanguages['code']['description'] = gT('Language'); // Your language name in English
    $supportedLanguages['code']['nativedescription'] = 'Language in native';  // The native name of your language
    $supportedLanguages['code']['rtl'] = (true|false); // RTL 
    $supportedLanguages['code']['dateformat'] = integer; // See getDateFormatData function
    $supportedLanguages['code']['radixpoint'] = (0|1); // 0 : ., 1 : , for radix point
    $supportedLanguages['code']['cldr'] = 'code';  // If the related Yii language code differs you can here map your language to a new code
    $supportedLanguages['code']['momentjs'] = 'code'; // Used by moment.js

Other part to be translated