mediawiki / lingo
Provides hover-over tool tips on wiki pages from terms defined on a wiki page
Package info
github.com/wikimedia/mediawiki-extensions-Lingo
Language:JavaScript
Type:mediawiki-extension
pkg:composer/mediawiki/lingo
Requires
- ext-dom: *
- composer/installers: >1.0.12
Requires (Dev)
Suggests
- mediawiki/semantic-glossary: Alternative back-end that retrieves terms and definitions from a Semantic MediaWiki store
This package is not auto-updated.
Last update: 2026-06-11 16:12:00 UTC
README
Lingo is a glossary extension to MediaWiki, that lets you define abbreviations and their definitions on a wiki page. It displays these definitions whenever an abbreviation is hovered over in an article.
See https://www.mediawiki.org/wiki/Extension:Lingo for online documentation.
Installation & Activation
The recommended way to install this extension is by using Composer.
- Add the following to the MediaWiki
composer.local.jsonfile
{
"require": {
"mediawiki/lingo": "^3.0"
}
}
-
Run
php composer.phar update mediawiki/lingofrom the MediaWiki installation directory. -
Add the following code to your LocalSettings.php:
wfLoadExtension('Lingo');
Updating
Run php composer.phar update mediawiki/lingo from the MediaWiki installation
directory.
Customization
Add the following to LocalSettings.php and uncomment/modify as needed:
$wgHooks['SetupAfterCache'][] = function() { // specify a different name for the terminology page (Default: 'Terminology' (or localised version). See MediaWiki:Lingo-terminologypagename.) //$GLOBALS['wgexLingoPage'] = 'Terminology'; // specify that each term should be annotated only once per page (Default: false) //$GLOBALS['wgexLingoDisplayOnce'] = false; // specify what namespaces should or should not be used (Default: Empty, i.e. use all namespaces) //$GLOBALS['wgexLingoUseNamespaces'][NS_SPECIAL] = false; // set default cache type (Default: null, i.e. use main cache) //$GLOBALS['wgexLingoCacheType'] = CACHE_NONE; // use ApprovedRevs extension on the Terminology page (Default: false) //$GLOBALS['wgexLingoEnableApprovedRevs'] = true; };
Usage
By default Lingo will mark up any page that is not in a forbidden namespace. To exclude a page from markup you can include NOGLOSSARY anywhere in the article. In some cases it may be necessary to exclude portions of a page, e.g. because Lingo interferes with some JavaScript. This can be achieved by wrapping the part in an HTML element (e.g. a span or a div) and specify class="noglossary".
Terminology page
Create the page "Terminology" (no namespace), and insert some entries using the following syntax:
;FTP:File Transport Protocol ;AAAAA:American Association Against Acronym Abuse ;ACK:Acknowledge ;AFAIK:As Far As I Know ;AWGTHTGTATA:Are We Going To Have To Go Through All This Again ;HTTP:HyperText Transfer Protocol
Running tests
From the Lingo directory run
php ../../tests/phpunit/phpunit.php --group extensions-lingo -c phpunit.xml.dist
Reporting bugs
Comments, questions and suggestions should be sent or posted to:
- the Lingo discussion page: https://www.mediawiki.org/wiki/Extension_talk:Lingo
- the maintainer: https://www.mediawiki.org/wiki/Special:EmailUser/F.trott
Credits
Lingo is a rewrite of Extension:Terminology, written by BarkerJr with modifications by Benjamin Kahn. It was originally written by Barry Coughlan and is currently maintained by Stephan Gambke.
License
GNU General Public License 2.0 or later.