Project:Language policy

This page describes the current multi-lingual policy on MediaWiki.org.

Help: namespace
Within the   namespace we are building a set of project-pd-help>Special:MyLanguage/Project:PD help|public domain help pages. The aim is to provide a basic set of help pages that may be imported into new wikis covering the basic editing and usage instructions. These should be translated into as many languages as possible.


 * English is the main reference language, and all root pages should be named and written in English.
 * Sub-pages should only be used for translations into other languages, not for English content (e.g. you shouldn't use   - use   or   instead).
 * If an international version of a page exists but an English version does not, then please create a stub article for the English version as this aids navigation.

This system will be compatible with the planned auto>Automating help page export|automated import/export of Help pages, but may need a bit of working around to export/import non-English pages in the interim.

Translate extension
We use the ext-translate>Special:MyLanguage/Extension:Translate|Translate extension for hundreds of pages. These use the subpage convention, with Langcat for categories and TNT for translatable templates.

The system is recommended at least for most visited pages and all new help, manual and (main) extension pages, but no policy has been established on this yet.


 * To translate: just go Special:LanguageStats</> and start translating.
 * To administer translations: <tvar|pagetrans>Special:PageTranslation</>, <tvar|groups>Special:AggregateGroups</>.

You can request a page to be added to translation by preparing it for translation, then a translation administrator will have to enable it (see the tutorial help-ext-translate>Special:MyLanguage/Help:Extension:Translate/Page translation example</>|How to prepare a page for translation); otherwise, ask directly to one of the list>Special:ListUsers/translationadmin</>|translation administrators to do it.

Old system

 * Other languages should be placed in an appropriately named sub-page of the English version. For example, the French version of Help:Contents should be at Help:Contents/fr (not Help:Contenu, Aide:Contenu or Help:Contenu/fr).


 * Language sub-pages should be named using the appropriate language code for that language (see langcodes>#langcodes</>|below).


 * All pages in the help namespace should be tagged with the <tvar|tpl-languages> </> template, which automatically creates links to all available translations.

Convert to Translate
The pages with existing translations are usually worth being made into translatable pages.

Prepare the (English) root page for translation (see section>#translate-extension</>|the Translate extension section) and, as soon as it's marked for translation, manually import the old translations from the history of subpages to the translation units (by clicking "translate this page").

The new feature Special:PagePreparation + Special:PageMigration facilitates this (currently available only for translation administrators).

A list of pages translated with the old system, to be migrated to the new, is in the works at <tvar|migration>Project:Language policy/Migration list</>.

More detailed instructions:


 * For a full introduction, read the help-ext-translate>Special:MyLanguage/Help:Extension:Translate</>|basic help, help-ext-translate-2>Special:MyLanguage/Help:Extension:Translate/Translation_example</>|translation tutorial, help-ext-translate-3>Special:MyLanguage/Help:Extension:Translate/Page_translation_example</>|page translation tutorial and help-ext-translate-4>Special:MyLanguage/Help:Extension:Translate/Page_translation_administration</>|translation reference manual.


 * Login or register on mediawiki.org: all your work will happen on this wiki. Pick one page to migrate to Translate from migration>Project:Language_policy/Migration_list</>|the migration list (on the list's talk page, you can ask any question). Polish the English text as fit/possible to avoid migrating very obsolete/low quality text, skip pages where unsure. Prepare the page for translation (i.e. add <tvar|translate-tag>&lt;translate></> tags etc.) following the page translation tutorial linked above; then edit the migration list, writing next to the page's title that you've done it.


 * A list>Special:ListUsers/translationadmin</>|translation administrator (you?) will now approve ("mark") the page for translation at their discretion. When it's approved, complete the job: copy the old translations to corresponding units with <tvar|special-translate>Special:Translate</> (as a translator would do in the translation tutorial linked above). You don't need to know the language you're migrating, only to identify which paragraph corresponds to which, even though it's not a loyal translation (machine translation can help grasp the meaning if the layout of the page doesn't provide enough hints).

The main page
The English version of our front page is located at <tvar|mediawiki>MediaWiki</>. Translated versions are located at MediaWiki/code, where code is the language code (e.g. MediaWiki/fr). Please see <tvar|project-mainpage>Project:Main page templates</> for more details about creating or editing this content.

Importantly, the rules about language codes (see langcodes>#langcodes</>|below) should be followed here as well.

Other namespaces
Apart from the Main Page, no policy has yet been decided about other namespaces. For the time being, if you would like to create translations for pages in other namespaces then please do so as described for the Help: namespace, however content may be moved or deleted depending on the policy that is eventually adopted.

For some discussions, see archive>Project:Current_issues/Archive_2#Languages</>|Languages and archive2>Thread:Project:Current_issues/_Project:Translate_extension</>|Translate extension at Current issues.

''Note that the rule that English content should not be placed in sub-pages does not apply to other namespaces. This is one of the issues that needs resolving.''

Language codes
Throughout MediaWiki.org you should use the language codes specified by the MediaWiki software when creating language-specific content (see [<tvar|git>https://phabricator.wikimedia.org/diffusion/MW/browse/master/languages/data/Names.php</> Names.php] for the full and up-to-date list).

Please also bear the following in mind:


 * If the language code is not found in Names.php then we should not host help pages in that language.


 * If you want to add a language that is not present, first get it added to the software (by making a request at 1>Special:MyLanguage/Phabricator</>|Phabricator) and only add pages here once the changes have been accepted.


 * If MediaWiki uses the 'incorrect' code for a language then you should also (for consistency) use that incorrect code here. If you think a code is incorrect you should discuss it on 1>Special:MyLanguage/Phabricator</>|Phabricator, and if this results in it being changed we will move the pages to match.


 * Note that some language codes in Names.php are now deprecated (e.g. <tt>zh-yue</tt> has been replaced with <tt>yue</tt>). In these cases only the most recent code should be used.