Translation: Difference between revisions

From MoodleDocs
(removed changes since 1.9 summary)
(rewording)
Line 18: Line 18:
If you have any questions, please enrol in the [http://lang.moodle.org/course/view.php?id=2 Translating Moodle course] and join the discussions there.
If you have any questions, please enrol in the [http://lang.moodle.org/course/view.php?id=2 Translating Moodle course] and join the discussions there.


== Background info: Structure of a Moodle language pack ==
== How do language packs work? ==


The standard Moodle distribution comes with an 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''.
A standard Moodle comes with an English language pack only which is installed in moodledata/lang/en. Extra language packs are normally installed directly from within Moodle from ''Administration>Language>Language packs'' but in some cases you might need to
install them via FTP to your moodledata folder into the folder ''lang''.


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 [[Translation priority]] page gives you a quick overview about the lang files, the content and makes a suggestion about priorities for translation.
The English language terms (or "strings")  for the main (core) Moodle features such as administration, roles etc are stored in ''lang/en.'' Language files relating to modules, blocks and add-ons are stored with the files of that particular module, block or add ons. So if you wanted to see the language strings for the badges block for example you would look in ''blocks/badges/lang/en''. If you wanted to see the language files for the workshop module you would look in'' mod/workshop/lang/en''


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:
 
If you install another languge pack, you will then get  a folder  such as lang/fr which would have French translations of Moodle terms. Unlike with English, other language  packs such as  ''lang/fr'' will contain all translations along with the main core terms so you would find see for example the badges strings in lang/fr/block_badges.php and the workshop strings in lang/fr/workshop.php
 
 
These files (which all end in .php) contain 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['addnewcourse'] = 'Add a new course';

Revision as of 10:48, 19 June 2013

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, email our translation coordinator, Koen, translation@moodle.org.

Otherwise, check the 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. (If you don't receive a response within a reasonable time, email Koen translation@moodle.org.)

Getting started

The Moodle languages portal http://lang.moodle.org/ enables translators to work collaboratively on language packs and submit translations using a special Moodle translation tool called AMOS.

To help with translating Moodle

  1. Create an account on the portal, making sure you provide your full name (in order for you to receive credit for your translation work) and contact email.
  2. See the info Help for newcomers.
  3. Access the AMOS translation tool via the link in the navigation block and see the AMOS documentation.

If you have any questions, please enrol in the Translating Moodle course and join the discussions there.

How do language packs work?

A standard Moodle comes with an English language pack only which is installed in moodledata/lang/en. Extra language packs are normally installed directly from within Moodle from Administration>Language>Language packs but in some cases you might need to install them via FTP to your moodledata folder into the folder lang.

The English language terms (or "strings") for the main (core) Moodle features such as administration, roles etc are stored in lang/en. Language files relating to modules, blocks and add-ons are stored with the files of that particular module, block or add ons. So if you wanted to see the language strings for the badges block for example you would look in blocks/badges/lang/en. If you wanted to see the language files for the workshop module you would look in mod/workshop/lang/en


If you install another languge pack, you will then get a folder such as lang/fr which would have French translations of Moodle terms. Unlike with English, other language packs such as lang/fr will contain all translations along with the main core terms so you would find see for example the badges strings in lang/fr/block_badges.php and the workshop strings in lang/fr/workshop.php


These files (which all end in .php) contain 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.

See also