Note: You are currently viewing documentation for Moodle 2.6. Up-to-date documentation for the latest stable version of Moodle may be available here: Translation.

Translation: Difference between revisions

From MoodleDocs
m (link edit)
(So you'd like to help with translating Moodle?)
Line 1: Line 1:
<p class="note">'''Note:''' This page describes the translation process for Moodle 2.0 onwards. For details of the translation process in versions of Moodle prior to 2.0, see [https://docs.moodle.org/19/en/Translation Translation pre-2.0].</p>
==So you'd like to help with translating Moodle?==


Great! :-) Please check the [[dev:Language packs without maintainer|list of language packs without maintainer]]. If your language is listed, and you'd like to volunteer to become language pack maintainer, contact [mailto:translation@moodle.org translation@moodle.org].


{{Moodle 2.0}}== Summary of changes since 1.x ==
Otherwise, check [[Translation credits]] and contact the maintainer of your language pack to ask where you can help. The name at the top of the list for each language is the current language pack maintainer. Once you have agreed on an area of Moodle that you intend to translate, create an account on the [http://lang.moodle.org/ Moodle languages portal] and follow the instructions on the front page. (If you don't receive a response within a reasonable time, contact [mailto:translation@moodle.org translation@moodle.org].)


* Translations are not kept in CVS any more but in a database at http://lang.moodle.org
== Structure of a Moodle language pack ==
* A web interface is used to translate strings
* All plugins now define their English strings in the plugin folder, as contrib plugins used to
* Language codes no longer have a _utf8 suffix
* HTML help files have been replaced with [[Development:Help strings|strings with a _help suffix]]
* Placeholders must be wrapped in curly braces
* Double quotes should not be escaped any more in the string definition


== Structure of a Moodle 2.x language pack ==
Note: This page describes the translation process for Moodle 2.0 onwards. For details of the translation process in versions of Moodle prior to 2.0, see [https://docs.moodle.org/19/en/Translation Translation pre-2.0].


The standard Moodle distribution comes with English language pack only. All other languages must be added to your installation. The English strings for Moodle core (that is the main subsystems like administration, gradebook, roles etc) can be found in ''lang/en/'' folder of your Moodle installation. For example, grading related strings are defined in ''lang/en/grades.php''. All other Moodle components (like activity modules, blocks, enrolment plugins etc) define their own strings in ''lang/en/'' folder within the plugin directory. For example, Workshop module defines its strings in ''mod/workshop/lang/en/workshop.php''.
The standard Moodle distribution comes with English language pack only. All other languages must be added to your installation. The English strings for Moodle core (that is the main subsystems like administration, gradebook, roles etc) can be found in ''lang/en/'' folder of your Moodle installation. For example, grading related strings are defined in ''lang/en/grades.php''. All other Moodle components (like activity modules, blocks, enrolment plugins etc) define their own strings in ''lang/en/'' folder within the plugin directory. For example, Workshop module defines its strings in ''mod/workshop/lang/en/workshop.php''.
Line 27: Line 22:


Installation language packs may be found in the ''install/lang'' folder. These language packs contain only the strings needed for the installation process. The files are generated automatically and '''must not be changed manually'''. For translators this is a unusual experience, since changes you add to the strings used in the installation script will not be visible until our script is run and commits them into Moodle sources.
Installation language packs may be found in the ''install/lang'' folder. These language packs contain only the strings needed for the installation process. The files are generated automatically and '''must not be changed manually'''. For translators this is a unusual experience, since changes you add to the strings used in the installation script will not be visible until our script is run and commits them into Moodle sources.
=== Summary of changes since 1.x ===
* Translations are not kept in CVS any more but in a database at http://lang.moodle.org
* A web interface is used to translate strings
* All plugins now define their English strings in the plugin folder, as contrib plugins used to
* Language codes no longer have a _utf8 suffix
* HTML help files have been replaced with [[Development:Help strings|strings with a _help suffix]]
* Placeholders must be wrapped in curly braces
* Double quotes should not be escaped any more in the string definition


== AMOS - Moodle translation tool ==
== AMOS - Moodle translation tool ==

Revision as of 08:25, 8 September 2011

So you'd like to help with translating Moodle?

Great! :-) Please check the list of language packs without maintainer. If your language is listed, and you'd like to volunteer to become language pack maintainer, contact translation@moodle.org.

Otherwise, check Translation credits and contact the maintainer of your language pack to ask where you can help. The name at the top of the list for each language is the current language pack maintainer. Once you have agreed on an area of Moodle that you intend to translate, create an account on the Moodle languages portal and follow the instructions on the front page. (If you don't receive a response within a reasonable time, contact translation@moodle.org.)

Structure of a Moodle language pack

Note: This page describes the translation process for Moodle 2.0 onwards. For details of the translation process in versions of Moodle prior to 2.0, see Translation pre-2.0.

The standard Moodle distribution comes with English language pack only. All other languages must be added to your installation. The English strings for Moodle core (that is the main subsystems like administration, gradebook, roles etc) can be found in lang/en/ folder of your Moodle installation. For example, grading related strings are defined in lang/en/grades.php. All other Moodle components (like activity modules, blocks, enrolment plugins etc) define their own strings in lang/en/ folder within the plugin directory. For example, Workshop module defines its strings in mod/workshop/lang/en/workshop.php.

Translations are located in your moodledata directory, in folder lang/xx/. Translations of all the components - both core and plugins - are stored there. For example, the Czech translation of the Workshop module is stored in moodledata/lang/cs/workshop.php and grade-related strings in moodledata/lang/cs/grades.php (note the difference against the English strings).

The language files all have a .php extension (eg moodle.php or workshop.php). These files contains short phrases, often called "strings". Strings may contain a placeholder for variable substitution. The placeholder is replaced with a certain value when the string is displayed. Strings are stored in PHP array called $string. The item key in this array is called string identifier or string name. Examples:

$string['addnewcourse'] = 'Add a new course';
$string['hidesection'] = 'Hide section {$a}';
$string['uploadedfileto'] = 'Uploaded {$a->file} to {$a->directory}';

These strings definition can be then used by get_string() function (see lib/moodlelib.php). If a string doesn't exist in a particular language, Moodle tries to find it in the so called parent language. If there is no parent language defined or it does not define the requested string, then the equivalent in English will automatically be used instead.

Installation language packs may be found in the install/lang folder. These language packs contain only the strings needed for the installation process. The files are generated automatically and must not be changed manually. For translators this is a unusual experience, since changes you add to the strings used in the installation script will not be visible until our script is run and commits them into Moodle sources.

Summary of changes since 1.x

  • Translations are not kept in CVS any more but in a database at http://lang.moodle.org
  • A web interface is used to translate strings
  • All plugins now define their English strings in the plugin folder, as contrib plugins used to
  • Language codes no longer have a _utf8 suffix
  • HTML help files have been replaced with strings with a _help suffix
  • Placeholders must be wrapped in curly braces
  • Double quotes should not be escaped any more in the string definition

AMOS - Moodle translation tool

From version 2.0, all Moodle strings are translated via a new tool called AMOS. See AMOS page for more information.