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:
- Babel
- CLDR ("Common Locale Data Repository")
- CleanChanges
LocalisationUpdate(No longer part of MLEB since 2022.07 release)- Translate
- UniversalLanguageSelector
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.
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
2023.01
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2023.01.tar.bz2
- sha256sum: 47dac8f27c363fb03ac2dfab023e45fa6cae9a5a03c4271961052bdf0b5aa497 [1]
- Announcement
- Release notes
- Compatible with MediaWiki >= 1.37.2 and requires PHP 7.3.19 or above.
Highlights
- MLEB now requires PHP >= 7.4 and MediaWiki >= 1.38
Previous releases
2022.10
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2022.10.tar.bz2
- sha256sum: c1cc1667de38a2b27fd0e43024f1c94bee5d58952fda8eabb43346d5ce4b7199 [1]
- Announcement
- Release notes
- Compatible with MediaWiki >= 1.37.2 and requires PHP 7.3.19 or above.
Highlights
- [SECURITY] Translate: Adds missing block checks to various pages and API (task T302479, Gerrit change 838940)
- This will be the last MLEB release supporting PHP 7.3 and MediaWiki 1.37
2022.07
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2022.07.tar.bz2
- sha256sum: 3e8f48643403946fdb55f3ff086ed1e702c0367f3282c9dc78eb6785964c0809 [1]
- Announcement
- Release notes
- Compatible with MediaWiki 1.37.2 or later and requires PHP 7.3.19 or above.
LocalisationUpdate
- LocalisationUpdate extension is removed from MediaWiki Language Extension Bundle. Please read the announcement.
Translate
- Support for MediaWiki 1.36 has been dropped.
- Avoid recreation of translation pages on bulk deletion of pages, for example when using the Nuke extension. (task T291724, Gerrit change 799383)
- Fix "Impossible to mark pages for translation using the mobile site". (task T311631, Gerrit change 809970)
2022.04
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2022.04.tar.bz2
- sha256sum: a5ef23339730ec80422d60c31ece1fb696397f6be90fbe9fbf703cc9ddbf5527 [1]
- Announcement
- Release notes
- Compatible with MediaWiki >= 1.36.4 < 1.37 or MediaWiki >= 1.37.2 and requires PHP 7.3.19 or above.
LocalisationUpdate
- We're planning to sunset the LocalisationUpdate extension from version 2022.07. Please read the announcement.
Translate
- If you are using translation memory with ElasticSearch backend, we recommend rebuilding the translation memory index. This can be done by running
php <path_to_mediawiki_core>/extensions/Translate/scripts/ttmserver-export.php
2022.01
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2022.01.tar.bz2
- sha256sum: 0cb434980b399f7bac42a92c9f171b6c9041cb998e3b2b0fcf16daf58c43fe61 [1]
- Announcement
- Release notes
- Compatible with MediaWiki 1.36 or above and requires PHP 7.3.19 or above.
Translate
- Breaking change: Remove backward compatibility for MW <= 1.35 (task T298788, Gerrit change 752166)
UniversalLanguageSelector
- Remove backward compatibility for MW <= 1.35
2021.12
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.12.tar.bz2
- sha256sum: 61c9c7a700c9f98c6b3c59adf2f0fc7d1919fc87e0c3584308d313536dd81f37 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.35.3 or above and requires PHP 7.3.19 or above.
Translate
- Fix broken SpecialMovePage on MediaWiki 1.35 (Phab:T296450)
2021.11
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.11.tar.bz2
- sha256sum: 07e697bfed3ef153c421a760221e93f0e3fef70a8db54defd59c4608b4d56352 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.35.3 or above and requires PHP 7.3.19 or above.
Translate
- Fix compatibility with MediaWiki <= 1.37 when VisualEditor is installed. (Phab:T294605)
2021.10
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.10.tar.bz2
- sha256sum: ce923b2a661e3a97ec8f0add9eb9369637e02cbb70a47b80a1e50f3e8c0001d6 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.35.3 or above and requires PHP 7.3.19 or above.
Translate
- SECURITY: Allow revdel-related actions in translatable pages (Gerrit)
- BREAKING CHANGES
- Export script: remove
--hours
(Gerrit) - Remove translation aids customization (Hook:
TranslateTranslationAids
) (Gerrit) - Remove
$wgTranslateDelayedMessageIndexRebuild
(Gerrit) - Remove
getConfiguration
andgetFFS
from MessageGroup (Gerrit) - Group configuration: Rename validator keymatch option to include (Gerrit)
- Export script: remove
UniversalLanguageSelector
- SECURITY: Language name search: Avoid searching for very long search keys (Gerrit, Phabricator)
- Improve support for the new Vector Skin.
- Remove configuration
ULSEnableAnon
(Gerrit) - Add support for multiple ULS buttons (Gerrit)
2021.07
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.07.tar.bz2
- sha256sum: f7cd8113c095375be51464429dff04c8fa5bb88bc22ba3d780bf5698668e52c5 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.35 or above and requires PHP 7.2 or above.
Translate
- SECURITY: Enhance validation and logging for AggregateGroups API deletions (task T282932)
- BREAKING CHANGES
- Translate extension now requires MediaWiki 1.35 or above.
- Remove TranslateMessageGroupPathVariables hook (Gerrit change 701678)
- Remove Validator and LegacyValidatorAdapter (Gerrit change 685438)
Configuration variable changes
To address voice and tone issues in the Translate extension (task T277965) the following configuration variable names have been renamed:
TranslateBlacklist
→TranslateDisabledTargetLanguages
TranslateAuthorBlacklist
→TranslateAuthorExclusionList
TranslateCheckBlacklist
→TranslateValidationExclusionFile
The old variables will be supported for MLEB 2021.07 release but removed in the MLEB 2021.10 release.
If you have defined message groups defined with LANGUAGE
attributes, whitelist/blacklist
have been changed to include/exclude
UniversalLanguageSelector
- BREAKING CHANGE: UniversalLanguageSelector extension now requires MediaWiki 1.35 or above.
- MODERN VECTOR:
- Position language menu below language button. (task T276248)
- Fix "ULS settings window can’t be opened with the preferences link on new Vector". (task T282956)
2021.06
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.06.tar.bz2
- sha256sum: 09e16a44f09103637ebd97a69bc96a8ad657cf6748ec7f859532be7270dc40fb [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.34 or above and requires PHP 7.2 or above.
- Bug fix release.
Translate
- Fix metadata handling for translatable page moves and deletions. (task T282905)
- Restore suggested languages to compact languages button. (task T282037)
2021.04
- Download: https://translatewiki.net/mleb/MediaWikiLanguageExtensionBundle-2021.04.tar.bz2
- sha256sum: 652b7838b4c87fba80ca46ebd15a106bf3fd4e9cc202417de6ee3ad33d2a8048 [1]
- Announcement and Release Notes
- Compatible with MediaWiki 1.34 and above and requires PHP 7.2 or above.
Translate
- Consider translated optional messages towards meeting the export threshold (task T159122)
- Do not lock pages indefinitely during translatable page moves (Gerrit change 661125)
- Limit pages that can be moved from the UI to 500 by default. (task T277431)
- This can be modified by updating the configuration:
$wgTranslatePageMoveLimit
- This can be modified by updating the configuration:
- Namespace for classes under the
src/
folder has been changed to:MediaWiki\Extension\Translate
instead of:MediaWiki\Extensions\Translate
.class_alias
has been used to ensure existing functionality and cached data does not break. The alias will be removed in the next MLEB release.
UniversalLanguageSelector
- Ensure ULS supports modern Vector (task T273232,task T273928)
2021.01
- Download: 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.
Translate
- 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)
UniversalLanguageSelector
- 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)
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 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 2023.01; cd ..
done
Installation
Installation requirements
Installation requirements of each piece of provided software are included in the respective documentation. See in particular the installation requirements.
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( '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.
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.