MediaWiki Language Extension Bundle
The MediaWiki language extension bundle (MLEB) is a curated set of MediaWiki extensions offering multilingual features.
It attempts to provide an easy way to bring comprehensive language support to a MediaWiki.
Overview of extensions
The current version of MLEB contains six extensions:
MLEB has a quarterly release schedule, so that you can easily stay on the cutting edge with the constantly improving language support. The bundle is tested against recent MediaWiki release versions, so you can avoid most of the temporary breaks that would happen if you were using the latest development versions of each extension.
Motivation
The Universal Language Selector is a must have, because it provides an essential functionality for any user regardless of the number of languages they speak: language selection, font support for displaying scripts badly supported by common operating systems, and input methods for typing languages that don't use the Latin alphabet. It includes freely-licensed fonts, which cover most of the major languages of America, Europe, Middle East, India and South East Asia.
Maintaining multilingual content in a wiki is a mess without the Translate extension, which is used by Wikimedia Foundation, KDE, translatewiki.net and other sites. With Localisation Update your users will always have the latest translations freshly out of the oven. The Clean Changes extension keeps your recent changes page uncluttered from translation activity and other clutter.
Don't miss the chance to practice your rusty language skills: Use the Babel extension to mark the languages you speak and find other speakers of the same language in your wiki. And, finally, the cldr extension is a database of language and country translations.
Release notes and downloads
Latest release
- 2021.01: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.01.tar.bz2
- sha256sum: 4360572704369e5c1f02ab9df831dd0a6258cbcbae28c61c3c4a551347000b00 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.34 and above and requires PHP 7.2 or above.
- Add script to find unsynchronized definitions (Gerrit change 655860)
- Various improvements to the transaction export.php script
- Add a script to find and delete equal translations (Gerrit change 652543)
- GoogleTranslateWebService: Add Chinese codes to code map (Gerrit change 649652)
- Convert Special:ManageMessageGroups to OOUI (Gerrit change 647670)
- Insertables have been moved to the src/TranslatorInterface/Insertable folder (Gerrit change 644460)
- Stop hiding page heading on pages other than Special:Translate (Gerrit change 644514)
- Drop non-array based configuration support for Insertables (Gerrit change 644464)
- Remove FCFontFinder (Gerrit change 641189)
- Bump group loader cache version to re-trigger re-caching of groups (Gerrit change 644843)
- Remove Gettext post processing support from export.php script (Gerrit change 641385)
- Improve handling of opening links to new tab/window for compact language links (Gerrit change 639474)
- Allow skins to register their own button and disable compact language links (task T264824)
Previous releases
- 2020.10: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2020.10.tar.bz2
- sha256sum: 8a0b0282e3a1ef88b231f8c1fd8c922052eba6e0b55b75f87de940632f3730e1 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.34 and above and requires PHP 7.2 or above.
- The Translate extension now requires MediaWiki 1.34 or above.
- Update the language selector on the Special:PageTranslation (Gerrit change 616762)
- Do not list all pages on marking a page for translation (Gerrit change 621034)
- Add API to fetch translation statistics (Gerrit change 623169)
- Replace PHPlot with Chart.js on Special:TranslationStats (task T134634)
- Fix mandatory deletion of sub pages when deleting translatable pages (Gerrit change 636871)
- Rename MessageValidator namespace to Validation (Gerrit change 616069)
- Legacy editor: remove various translation helpers, custom buttons
- Make Language stats appear better on mobile screens and make the header sticky (Gerrit change 631979)
- Tag untranslated translations units with lang and dir attributes (task T254484)
- Add magic word:
{{TRANSLATIONLANGUAGE}}
for translatable pages (task T254486) - Avoid showing bdi tags on Special:Translate (task T117852)
- Add Developer guide for Translate (task T256873)
- Fix "Translation page does not contain the latest translations/last translation" (task T255334)
- Fix "This namespace is reserved for content page translations" when trying to translate a recently created translation unit" (task T221119)
- ULS now defines unsupported skins (task T237036, task T235712)
- Remove configuration variables:
ULSCompactLinksForNewAccounts
andULSCompactLinksEnableAnon
(Gerrit change 632721) - 2020.07: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2020.07.tar.bz2
- sha256sum: 7334f6c0f4e00a451d976c81024c955061cffc3466d8a03fd223733992d0a2d5 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.33 and above and requires PHP 7.2 or above.
- Update to cldr 37.
- Fixes to moving and deletion of translatable pages. (Phab:T168591)
- Display a help message when editing a translatable page source. (Phab:T192052)
- Translations are now published instead of saved, for consistency with rest of MediaWiki. (Phab:T131132)
- 2020.04: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2020.04.tar.bz2
- sha256sum: 97dbf8846c62cbafa43b7b5f359c3fb55039846277ebb55dd7b00e42d356d709 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.33 and above and requires PHP 7.2 or above.
- Remove PHP based entry point for Translate extension. Use
wfLoadExtension( 'Translate' );
to load the Translate extension. - Test and add support for PHP 7.4. Now all versions of PHP 7.2 and above are supported.
- SECURITY FIX: Translate: HTML from messages was not escaped in Special:ManageMessageGroups. If you do not use this page (e.g. only use translatable wiki pages) you are not affected. (Phab:T242115)
- 2020.01: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2020.01.tar.bz2
- sha256sum: 94c6bb79e6b3bc55b8ca629165256a96da8dbd196999da09ba45a7e11cc7c194 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.33 and above and requires PHP 7.2 or above.
- Updated to cldr 36.
- Prevent duplicate translation unit error from showing twice. (Phab:T236153)
- Add secondary check before displaying tpt-unknown-page error. (Phab:T221119)
- Display an error message if translation aids fail to load. (Phab:T221119)
- Improve message group selector performance reducing Translate API request time. (Phab:T236904)
- Update setlang to display confirmation dialog to change language. (Phab:T63115)
- 2019.10: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2019.10.tar.bz2
- sha256sum: b7d6afdb365c7333829ab5b4e286c2f28e3a5f6f48d1584c1f43439e74a60de6 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.32 and above and requires PHP 7.1.0 or above.
- PHP entry point has been deprecated. To load the Translate extension, please use the following,
wfLoadExtension( 'Translate' );
- Removed deprecated and unmaintained SolrTTMServer. Recommendation is to migrate to ElasticSearch. (Phab:T87985)
- Dropped support for HHVM.
- 2019.07: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2019.07.tar.bz2
- sha256sum: 84cb6de241f62c7e5e9853d74390c4ffbf55cf35aab930c36f9ec5733a351130 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.32 and above and requires PHP 7.0.0 or above.
- Update to cldr 35.1 (T220906).
- Translate and UniversalLanguageSelector now requires MediaWiki >= 1.32.0. Please upgrade!
- Added a new MessageValidator framework to improve translation validation. (T204568) (See documentation).
- Fixed invalid more warnings label shown during message translation (T220789)
- Added several African keyboards in UniversalLanguageSelector.
- 2019.04: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2019.04.tar.bz2
- sha256sum: 5fbbd39acd1cc0e1edbd542a390daf1992d1526134ceb69248cdb4dced58f3a9 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.31, 1.32 and above and requires PHP 7.0.0 or above.
- PHP entry point has been removed for CleanChanges and cldr. Warning will be displayed for deprecated PHP entry point. (T140007)
- Fixed fatal error on PageContentLanguage hook subscriber (T214358)
- Fixed broken Special:PageMigration (T217727)
- Added support for newer versions of the Elastica extension while maintaining backward compatibility for older version REL 1.31 (T218100)
- Added multiple new keyboard layouts in UniversalLanguageSelector.
- 2019.01: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2019.01.tar.bz2
- sha256sum: 39f2e946e360ac868744dc8e6f62cb5723447415bd11bcbb4911eb0f3674360c [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.31, 1.32 and above and requires PHP 5.5.9 or above.
- $wgTranslateCC is deprecated now. It should be replaced by TranslatePostInitGroups hook. (T212836)
- Added proofreading to (Language|MessageGroup)Stats. The statistics table also has updated styling. (T41279)
- Skipping messages Special:Translate's page mode no longer sometimes marks the translation proofread. (T206748)
- Translatable subpages are no longer moved when moving parent. (T114592)
- Message group stats updating was broken in multiple ways. (T134252, T208521)
- Added multiple new keyboard layouts in UniversalLanguageSelector.
- 2018.10: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2018.10.tar.bz2
- sha256sum: c0a65956d4f8e49ba1b401372636b9575a5c17fbf2501fa14ff1c265dd778862 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.30, 1.31 and above and requires PHP 5.5.9 or above.
- Updated cldr to version 34.0
- LocalisationUpdates and UniversalLanguageSelector has removed PHP entry point. Please update your configuration!
- Fixed an error in Translate that prevented Special:PageMigration from working.
- UniversalLanguageSelector now supports UI language change when Global Preferences are present. (T198206)
- UniversalLanguageSelector dropped support for discontinued freegeoip.net.
- 2018.07: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2018.07.tar.bz2
- sha256sum: 36aa80c78be6dcfb533f96dc25afdabd2fd4716452c1b5a6f2bc982def1af7bc [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.30, 1.31 and above and requires PHP 5.5.9 or above.
- Updated cldr to version 33.
- Special:SupportedLanguages: List of authors is now sorted by the number of contributions.
- Message keys coming from external files are now handled with more care and less likely to produce invalid or inaccessible pages. (T193023)
- refresh-translatable-pages.php script can now use JobQueue, which is more efficient on wikis with thousands of translatable pages. (T195347)
- Custom languages defined in $wgExtraLanguages now always appear in Special:Translate and Special:SearchTranslations. (T112889)
Downloading with Git
In your extensions directory do the following to get or update to the latest release and follow configuration instructions below.
for ext in Babel cldr CleanChanges LocalisationUpdate Translate UniversalLanguageSelector
do
if [ ! -d "$ext" ]
then
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/$ext.git
fi
cd $ext; git fetch --tags; git checkout 2021.01; cd ..
done
Installation
Installation requirements
Installation requirements of each piece of provided software are included in the respective documentation. See in particular:
Add/update your LocalSettings.php
Near the end of LocalSettings.php, you have to place this configuration:
wfLoadExtension( 'Babel' );
wfLoadExtension( 'cldr' );
wfLoadExtension( 'CleanChanges' );
$wgCCTrailerFilter = true;
$wgCCUserFilter = false;
$wgDefaultUserOptions['usenewrc'] = 1;
wfLoadExtension( 'LocalisationUpdate' );
$wgLocalisationUpdateDirectory = "$IP/cache";
wfLoadExtension( 'Translate' );
$wgGroupPermissions['user']['translate'] = true;
$wgGroupPermissions['user']['translate-messagereview'] = true;
$wgGroupPermissions['user']['translate-groupreview'] = true;
$wgGroupPermissions['user']['translate-import'] = true;
$wgGroupPermissions['sysop']['pagetranslation'] = true;
$wgGroupPermissions['sysop']['translate-manage'] = true;
$wgTranslateDocumentationLanguageCode = 'qqq';
$wgExtraLanguageNames['qqq'] = 'Message documentation'; # No linguistic content. Used for documenting messages
wfLoadExtension( 'UniversalLanguageSelector' );
Update database tables
Command line
In the directory where your LocalSettings.php is located, run the following command:
php maintenance/update.php
Web browser
Go to example.com/mediawiki/mw-config/ (see Manual:Upgrading#Web browser) by using your domain and path and rerun install.
Configuring and using extensions
See the respective extension documentation pages. Do note that LocalisationUpdate does nothing by default and needs additional configuration to be run periodically.
- https://www.mediawiki.org/wiki/Extension:Babel
- https://www.mediawiki.org/wiki/Extension:CLDR
- https://www.mediawiki.org/wiki/Extension:CleanChanges
- https://www.mediawiki.org/wiki/Extension:LocalisationUpdate
- https://www.mediawiki.org/wiki/Extension:UniversalLanguageSelector
- https://www.mediawiki.org/wiki/Help:Extension:Translate
Background
MLEB does not use version-specific branches of extensions. It's a snapshot from master which is verified to be working with the specified MediaWiki releases. This means all MLEB extensions must follow the compatibility policy of supporting two latest stable MediaWiki releases in the master branch.
MLEB releases are created with a tool called Melange. If you are interested in that code (e.g. you want to change its code), see the Melange repository in Git.