Provides hover-over tool tips on wiki pages from terms defined on a wiki page

Installs: 64 145

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 4

Forks: 4



3.2.0 2023-01-25 14:30 UTC


Build Status Code Coverage Code Quality Dependency Status Latest Stable Version Packagist download count

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 for online documentation.


  • PHP 7.0 or later
  • MediaWiki 1.31 or later

Installation & Activation

The recommended way to install this extension is by using Composer.

  1. Add the following to the MediaWiki composer.local.json file
	"require": {
		"mediawiki/lingo": "^3.0"
  1. Run php composer.phar update mediawiki/lingo from the MediaWiki installation directory.

  2. Add the following code to your LocalSettings.php:



Run php composer.phar update mediawiki/lingo from the MediaWiki installation directory.


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;



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:


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.


GNU General Public License 2.0 or later.