Translation

This pages summarises how this wiki might be made multi-lingual, and the steps required to achieve that.

When creating a new page, please also create an associated Discussion page based on the one for this page.

Summary

The Restart Project has an aspiration to make this wiki available in as many different lanuages as possible. Mediawiki, the software on which it's based, has extensions to facilitate multi-lingual support and a translation workflow. These are examined in this page, both from a user's and an implementor's point of view.

For the moment, this page comprises a repository of knowledge and implementation suggestions or proposals, but once multilingual support is implemented it will be changed into or replaced by a multilingual and translation guide for users,and hopefully the first page to be translated into any language.

Safety

Warning03.png
There are no safety issues as such, except the risk that a safety warning might be mis-translated, altering its meaning or lessening its force.

Mediawiki Extensions

The MediaWiki Language Extension Bundle (MLEB) comprises 6 individual extensions covering various aspects of multi-lingual support:

  • UniversalLanguageSelector is foundational to the other extensions comprising MLEB, and adds a language selector to wiki pages.
  • Babel provides a set of categories by which a user can declare his/her language competencies, and a template to declare them.
  • cldr gives language and currency names against ISO country codes.
  • CleanChanges hides less importnt information in change histories by offering filtering by user and laguage code suffix.
  • LocalisationUpdate allows for updating of localisations for MediaWiki messages at any time, without needing to upgrade the MediaWiki software.
  • Translate provides the framework and workflow for the translation of content.

In addition to MLEB, ContentTranslation provides further facilities over and above Translate for the translation of content, typically for an entire page. (Further detail required.)

A further extension, TranslationNotifications, provides a means by which translators may sign up for notifications about translations within their competance, sent by a Translation Administrator.

The following sections deal with each of these in an order more in line with their visibility to users.

Translate

Translation lifecycle

A page follows thefollowing lifecycle:

  1. The page is created.
  2. Over a number of edits and possibly an extended timescale, the page settles to a fairly steady state with relatively few and infrequent changes.
  3. A Translation Administrator will prepare the page for translation (Special Pages under the Translation heading). This results in the entire page being wrapped in tags and breaking it into individual translation units, generally corresponding to single paragraphs and headings. This is initially done automatically, but the Translation Administrator should perform a sanity check. If it appears ok, s/he will click Publish.
  4. Under Special Pages - Page translation, the page will now appear under Pages proposed for translation. Against it will be a Mark for Translation link, which a Translation Administrator can click. The page is displayed, showing how it's been broken up into "translation units". If these seem reasonable the Translation Administrator can click Mark this version for Translation at the bottom of the page.
  5. Any user can then click Translate (Special Pages under Translation). First select a target language. By default, at the top of the page it will say Message Group: All, and will display all the translation units that need translating. Click on All to select a particular page instead. NB on Mediawiki, "Translate this page" appears at the top of pages marked for translation. How do we get that?
  6. Where translations were made by a user, a Translator can go into the same translation page and mark translations as reviewed.
  7. Changes may be made to the original source page. This will result in translations being marked as requiring update and a return to the previous step but one.
  8. At all stages, statistics are available showing the state, including % completion, of all translations.

Permissions

Objectives

All logged in users can edit pages, subject to review, and in the same way, all users should be able to contribute and edit transations.

The Editor group has special permission to approve edits, members of which need a good command of English and should be familiar with and able to identify with the conventions, philosopy and style of the wiki.

In the same way, the translator group members will need a professional or native command of the destination language, and will approve translations, ensuring that they are to a high standard.

Translation Administrators will decide which pages are ready for translation, and will prepare and mark them for translation. They need an overall view of the wiki and will guide translations at a strategic level. They will probably already be Editors. It's probably desirable (though not strictly necessary) that they have intermediate level proficiency in a language other than their own so as to understand the problems and pitfalls of translating technical text whist keeping it accessible.

Detailed permissions

Logged out: Can view pages and page source. Seems to allow Translation interface!

Autoconfirmed: Special:ImportTranslations enabled. Special:Translation enabled.

Editor:

Translator:

Admin: Import translations, Prepare for Translation, Translation page migration

Autoconfirmed users:

Implementation

ContentTranslation

UniversalLanguageSelector

NB Doesn't seem to work reliably, Should also change content language.

Babel

This extensionallows you to declare your language proficiencies by including a template in you user page. The template has two effects: it defines a nicely formatted box to display to declare your proficiencies, and it makes you a member of appropriate language groups.

The template takes the form:

 {{#babel: babelcode1 | babelcode2 | ... }}

Each babelcode declares a language proficiency in the form xx-n, where xx is a language code and n delclares a level of proficience as follows:

xx-0 If you don't understand the language at all.
xx-1 Basic ability - enough to understand written material or simple questions in this language.
xx-2 Intermediate ability - enough for editing or discussions.
xx-3 Advanced level - though you can write in this language with no problem, some small errors might

occur.

xx-4 "Near-native" level - although it's not your first language from birth, your ability is something like that of a native speaker.
xx-5 Professional proficiency.
xx or xx-N Native speakers who use a language every day and have a thorough grasp of it, including colloquialisms and idioms.

For example:

{{#babel: en | fr-2 | de-0 }}

declares native English, intermediate French, and zero German.

CleanChanges

cldr

LocalisationUpdate

External links