Wiki Translation Infrastructure

From Mudlet
Revision as of 01:10, 14 January 2022 by WikiSysop (talk | contribs) (Updating translation from gettext import)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎français • ‎italiano • ‎polski • ‎suomi • ‎Ελληνικά • ‎русский • ‎العربية • ‎한국어

The Mudlet Wiki uses a set of extensions to enable translation of the wiki contents. The MediaWiki Language Extension Bundle provides all the tools needed to make translations directly on the wiki. However, Mudlet makes use of Crowdin to translate texts throughout the Mudlet project. This page describes the infrastructure that was built to enable translations from Crowdin.


How it Works

Simply put, every day at 1:00 AM UTC the mudlet.org server runs some tasks to import translations from Crowdin and export existing sources from the Wiki. The sources are extracted from the English version of any page that is ready for translation. The sources are uploaded after importing translations has finished.

Translations can only be made once the source is uploaded, so this method may cause a delay.

Translations can be made on the wiki. Sources and translations can be manually exported from the wiki using either the Export Translations page, or by using the web tool described in "Forcing Updates" section.

Sources and Translations can be uploaded to Crowdin manually, provided they are exported from the wiki using the "Export for off-line translation" option.

Do note, some page titles contain colon : characters and those must be replaced with equals sign = characters before uploading to Crowdin!

All the scripts required can be located in /var/www/i18n/ and /var/www/wiki/ on the server. The update task is scheduled via the service user's crontab.


How to Use

To enable a page for translations, a wiki admin or moderator first needs to Prepare for Translation the desired page(s). The preparation adds some initial markup to review and help them get started.

Once a page is prepared, they can edit the Translation Markup to better suit translation needs, or prune out Wikitext for translators where possible.

After the page is prepared and the Translate Markup is finished, the pages must be Marked for Translation which will list off "translation units" the page created based on its Translate Markup. Be sure to enable translation of the page display title if it is not already enabled!

With a page properly marked for translation, the imports, exports, and translations can begin.


Extensive changes to a page may require it to be marked for translation again, to help keep translation units manageable for translators.


Forcing Updates

Wiki Translations and Crowdin Sources can be updated manually by using the Wiki Translations update tool found at https://make.mudlet.org/wiki-translations.php

You can pass the following URL Parameters to force specific updates:

  • update=all -- Forces both import and export, the same actions as the daily task.
  • update=wiki -- Forces download and import of translations from Crowdin to the Wiki.
  • update=crowdin -- Forces export and upload of English source-texts from Wiki to Crowdin.

(links aren't added here so bots don't 'click' them)

Manual updates can only be run once within 15 minutes, regardless of the triggered task.


Helpful Reading