Translation: Difference between revisions

Line 92: Line 92:


# Login as Graham. In the search box, type "just some stuff" and go to the page of that name. Click on Edit at the top of the page, select all the text and copy it to the clipboard.
# Login as Graham. In the search box, type "just some stuff" and go to the page of that name. Click on Edit at the top of the page, select all the text and copy it to the clipboard.
# Search for page "stuff-pierre", replacing pierre with your name. Take the option to create such a page, paste the clipboard into it and save it. You now have your own page which you can try translating.
# Search for page "stuff-pierre", replacing pierre with your name. Take the option to create such a page, paste the clipboard into it and save it. You now have your own page which you can try translating.
# Logout, and login as Henry (Translate Admin).
# Logout, and login as Henry (Translate Admin).
# Go to Special Pages, and under Translation at the bottom, select Prepare page for translation. Enter Stuff-pierre and click Prepare.
# Go to Special Pages, and under Translation at the bottom, select Prepare page for translation. Enter Stuff-pierre and click Prepare.
# You will see that a <languages/> tag has been inserted at the start, and everything that needs to be translated is enclosed in <translate> ... </translate> tags. Check that this looks sensible, i.e. everything that needs to be translated is so enclosed and anything that shouldn't be is excluded. Click the Publish button at the top.
# You will see that a <languages/> tag has been inserted at the start, and everything that needs to be translated is enclosed in <translate> ... </translate> tags. Check that this looks sensible, i.e. everything that needs to be translated is so enclosed and anything that shouldn't be is excluded. Click the Publish button at the top.
# Return to Special Pages, and under Translation, select Page Translation. You will be shown your page under Pages proposed for translation, and probably some others under Pages in translation. Under your page, click Mark for translation.
# Return to Special Pages, and under Translation, select Page Translation. You will be shown your page under Pages proposed for translation, and probably some others under Pages in translation. Under your page, click Mark for translation.
# You will see that each heading and paragraph is shown as a separate "translation unit", allowing it to be translated independently of other translation units. Click Mark this version for translation, at the bottom of the page.
# You will see that each heading and paragraph is shown as a separate "translation unit", allowing it to be translated independently of other translation units. Click Mark this version for translation, at the bottom of the page.
# Logout and login as Norman (an autoconfirmed user).
# Logout and login as Norman (an autoconfirmed user).
# Go to Special Pages, and under Translation, select Translate. Initially, you will be shown a list of all translation units in all pages. At the top, where it says Message group All, click All and select stuff-pierre.
# Go to Special Pages, and under Translation, select Translate. Initially, you will be shown a list of all translation units in all pages. At the top, where it says Message group All, click All and select stuff-pierre.
# At the top of the page, where it says TYranslate to, select your target language.
# At the top of the page, where it says TYranslate to, select your target language.
# Each translation unit will be presented in its source language, with a box below in which to type your translation. You can go through them in sequence, or select any of your choice by clicking Edit to the right of the translation unit. After translating each translation unit, click Publish. You will be moved to the next.
# Each translation unit will be presented in its source language, with a box below in which to type your translation. You can go through them in sequence, or select any of your choice by clicking Edit to the right of the translation unit. After translating each translation unit, click Publish. You will be moved to the next.
# Continue translating a few translation units (or all of them if you like).
# Continue translating a few translation units (or all of them if you like).



Revision as of 21:45, 28 October 2020

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.

Has permissions translate, translate-import.

Can edit pages, and translate pages marked as for translation.

Editor: Can approve edits by autoconfirmed users.

Translator: Can review and approve translations by autoconfirmed users.

Translate-admin Can prepare and mark pages for translation.

Admin: Can do all the above.

Implementation

Worked example

The following users are set up, all with the same password: Norman: Autoconfirmed User

Graham: Translator, Editor

Henry: Translation Admin, Translator, Editor

pleriche: Administrator, Translation Admin, Translator, Editor.

  1. Login as Graham. In the search box, type "just some stuff" and go to the page of that name. Click on Edit at the top of the page, select all the text and copy it to the clipboard.
  2. Search for page "stuff-pierre", replacing pierre with your name. Take the option to create such a page, paste the clipboard into it and save it. You now have your own page which you can try translating.
  3. Logout, and login as Henry (Translate Admin).
  4. Go to Special Pages, and under Translation at the bottom, select Prepare page for translation. Enter Stuff-pierre and click Prepare.
  5. You will see that a
    Other languages:
    • English
    tag has been inserted at the start, and everything that needs to be translated is enclosed in ... tags. Check that this looks sensible, i.e. everything that needs to be translated is so enclosed and anything that shouldn't be is excluded. Click the Publish button at the top.
  6. Return to Special Pages, and under Translation, select Page Translation. You will be shown your page under Pages proposed for translation, and probably some others under Pages in translation. Under your page, click Mark for translation.
  7. You will see that each heading and paragraph is shown as a separate "translation unit", allowing it to be translated independently of other translation units. Click Mark this version for translation, at the bottom of the page.
  8. Logout and login as Norman (an autoconfirmed user).
  9. Go to Special Pages, and under Translation, select Translate. Initially, you will be shown a list of all translation units in all pages. At the top, where it says Message group All, click All and select stuff-pierre.
  10. At the top of the page, where it says TYranslate to, select your target language.
  11. Each translation unit will be presented in its source language, with a box below in which to type your translation. You can go through them in sequence, or select any of your choice by clicking Edit to the right of the translation unit. After translating each translation unit, click Publish. You will be moved to the next.
  12. Continue translating a few translation units (or all of them if you like).

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