Translator documentation: Difference between revisions

Jump to navigation Jump to search
Line 7: Line 7:
Dolibarr can be translated in three different ways:
Dolibarr can be translated in three different ways:


# Manually using Transifex.com (that's the official and recommended method).
# Manually editing language files
# Completely automatic: autotranslator
# Completely automatic: autotranslator
# Manually editing language files
# Manually using Transifex.com (that's the official and recommended method).
== Automatic Translation with autotranslator.php tool ==
* Translator OS: All
* Tool: '''autotranslator.php''' provided with Dolibarr in directory '''dev/translation'''.
This method is recommended when starting translation for a language not already initialized. If there is already a translation available but you need to add missing key or correct errors, try to use method using Transifex (see later).
To make or update all files of a language code, just run the script:
<source lang="bash">
php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY
</source>
For example :
<source lang="bash">
php autotranslator.php en_US pt_PT GOOGLEAPIKEY
</source>
to translate into Portuguese (pt_PT) using English (en_US) files.
All non existing files will be created, all existing files will be updated.
The tool use [http://translate.google.com Google translation] service to find the translation value of a string, so a working Internet connection is required from station running the script. Also a GOOGLEAPIKEY is required and Google charges a fee for using this service (20 euros / 1 000 000 of translated chars).
Your PHP must also have permissions to write into '''htdocs/langs''' directory and must have curl functions available.


== Manual Translation (not recommended) ==
To translate Dolibarr into another language, go to the langs directory and create a folder/directory named with the code language to translate (follow the existing format, for example en_US, en_GB, es_ES, de_DE, etc...). Then copy the files from an existing language directory (for example en_US/main.lang, en_GB/bills.lang), into the new language directory that you have just created.
These files have the format of key/value pairs in each line like the followings:
<source lang="ini">
Code1 = translate phrase 1
Code2 = translate phrase 2
...
Coden = translate phrase n
</source>
Translate the phrases (the value portion of the key/value pairs) on right side of the "=" as seen above, the code (the key portion) on left side of "=" should remain unchanged. It is possible to translate the files one by one, without bringing them all at once. If a file has not been translated into the new language, Dolibarr uses English.
To have a localised (translated) string into the PHP code, all you have to do is load the language file and use the method to get the translated value, like this:
<source lang="php">
$langs->load("myfile"); // or use $langs->load("myfile@mymodule") if myfile.lang is inside directory htdocs/mymodule/langs/xx_XX 
print $langs->trans("CodeX")
</source>
An entry type;
<source lang="ini">
CodeX = phrase X
</source>
must be present or added to the myfile.lang file.




Line 222: Line 172:
Sync is always done on develop and/or beta.
Sync is always done on develop and/or beta.
So transifex changes appear in all version whose branch is created after the transifex change (a sync is always done before creating a new branch). Once a branch is created, then new changes into transifex will be available only for next branch. Reason of this is that transifex is not able to manage branch/versions (not yet).
So transifex changes appear in all version whose branch is created after the transifex change (a sync is always done before creating a new branch). Once a branch is created, then new changes into transifex will be available only for next branch. Reason of this is that transifex is not able to manage branch/versions (not yet).
== Manual Translation (not recommended) ==
To translate Dolibarr into another language, go to the langs directory and create a folder/directory named with the code language to translate (follow the existing format, for example en_US, en_GB, es_ES, de_DE, etc...). Then copy the files from an existing language directory (for example en_US/main.lang, en_GB/bills.lang), into the new language directory that you have just created.
These files have the format of key/value pairs in each line like the followings:
<source lang="ini">
Code1 = translate phrase 1
Code2 = translate phrase 2
...
Coden = translate phrase n
</source>
Translate the phrases (the value portion of the key/value pairs) on right side of the "=" as seen above, the code (the key portion) on left side of "=" should remain unchanged. It is possible to translate the files one by one, without bringing them all at once. If a file has not been translated into the new language, Dolibarr uses English.
To have a localised (translated) string into the PHP code, all you have to do is load the language file and use the method to get the translated value, like this:
<source lang="php">
$langs->load("myfile"); // or use $langs->load("myfile@mymodule") if myfile.lang is inside directory htdocs/mymodule/langs/xx_XX 
print $langs->trans("CodeX")
</source>
An entry type;
<source lang="ini">
CodeX = phrase X
</source>
must be present or added to the myfile.lang file.
== Automatic Translation with autotranslator.php tool ==
* Translator OS: All
* Tool: '''autotranslator.php''' provided with Dolibarr in directory '''dev/translation'''.
This method is recommended when starting translation for a language not already initialized. If there is already a translation available but you need to add missing key or correct errors, try to use method using Transifex (see later).
To make or update all files of a language code, just run the script:
<source lang="bash">
php autotranslator.php lang_code_source lang_code_target GOOGLEAPIKEY
</source>
For example :
<source lang="bash">
php autotranslator.php en_US pt_PT GOOGLEAPIKEY
</source>
to translate into Portuguese (pt_PT) using English (en_US) files.
All non existing files will be created, all existing files will be updated.
The tool use [http://translate.google.com Google translation] service to find the translation value of a string, so a working Internet connection is required from station running the script. Also a GOOGLEAPIKEY is required and Google charges a fee for using this service (20 euros / 1 000 000 of translated chars).
Your PHP must also have permissions to write into '''htdocs/langs''' directory and must have curl functions available.


= [[File:Language.png]] Distribute or include your translation into core source =
= [[File:Language.png]] Distribute or include your translation into core source =

Navigation menu