From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manualManual:Extensions
Crystal Clear action run.png

Release status:Extension status stable

ImplementationTemplate:Extension#type Extended syntax, Skin
DescriptionTemplate:Extension#description Provides hover-over tool tips on pages from words defined on a wiki page
Author(s)Template:Extension#username Barry Coughlan
Stephan Gambke
Latest versionTemplate:Extension#version 2.0.1 (2016-03-12)
MediaWikiTemplate:Extension#mediawiki 1.26+
PHPTemplate:Extension#php 5.3.3+
Database changesTemplate:Extension#needs-updatephp No
ComposerComposer mediawiki/lingo
LicenseTemplate:Extension#license GNU General Public License 2.0 or later
Download Download Lingo 2.0.0

Release notes
  • $wgexLingoPage
  • $wgexLingoDisplayOnce
  • $wgexLingoUseNamespaces
  • $wgexLingoBackend
  • $wgexLingoCacheType
  • $wgexLingoEnableApprovedRevs
Hooks usedTemplate:Extension#hook

Translate the Lingo extension if it is available at translatewiki.net

Check usage and version matrix.


Open tasks ยท Report a bug

Lingo is a glossary extension. It lets you define a list of abbreviations and their definitions on a page and then displays these definitions whenever an abbreviation is hovered over in an article.


The Terminology page[edit]

By default Lingo will mark up any page with the terms and definitions defined on the Terminology page of your wiki (or the respective page in the language of your wiki; see the Special:Version page of your wiki for the actual Terminology page name). Just create that page and insert some entries using the following syntax:

;FTP:File Transfer Protocol
;AAAAA:American Association Against Acronym Abuse
;AFAIK:As Far As I Know
;AWGTHTGTATA:Are We Going To Have To Go Through All This Again
;HTTP:HyperText Transfer Protocol

You can use any characters in a term (including punctuation, spaces, all UTF-8 characters, but excluding the colon (:) of course), you are not limited to only letters.

To give some structure to the Terminology page you are also allowed to have Terms and Definitions on separate lines. Any lines not starting with a ; or a : are ignored, so go ahead and insert empty lines, headlines, explanatory text.

Using this format you may assign one definition to multiple terms, e.g. to cover grammatical variants (see the U.S.A. example below) and multiple definitions to one term, e.g. to cover different meanings (see the ACK example). You may even combine this, i.e. have multiple definitions for a set of multiple terms. Finally you may also use transclusion, e.g. to have different glossaries for different topics and pull them all together on the Terminology page.

:File Transfer Protocol

:American Association Against Acronym Abuse

:Acklington railway station

:United States of America

Pull in more terminology from elsewhere:

Excluding text from markup[edit]

You can exclude an article from markup by including the magic word __NOGLOSSARY__ anywhere in that article's text.

In some cases it may be necessary to exclude only portions of a page, e.g. because Lingo interferes with some JavaScript. This can be achieved by wrapping that part in an HTML element (e.g. a span or a div) and specifying class="noglossary". As a shorthand for <span class="noglossary"> you can just use the <noglossary> tag.


Lingo supports the ApprovedRevs extension for the Terminology page. See Customization below.


The extension is pretty well internationalized by now, thanks to the efforts of the volunteers on http://www.translatewiki.net. (If your language is not supported yet, get an account there and help yourself. It's easy!) To find out the name of the Terminology page and of the __NOGLOSSARY__ magic word in your wiki's language, have a look at the Lingo.i18n.php and Lingo.i18n.magic.php files.


Lingo 2.0 requires MediaWiki 1.26 or above. On Mediawiki 1.20 or above you can use Lingo 1.2.


Lingo should be installed using Composer. The package name is mediawiki/lingo. For instructions on how to install Composer see MediaWiki's Composer User manual .

1. Add the following to the MediaWiki composer.local.json file

	"require": {
		"mediawiki/lingo": "~2.0"

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

Any future update is then just a call to php composer.phar update mediawiki/lingo.

3. Continue with the Common steps below.

Using packaged downloads[edit]

If Composer is not an option, you may also install it like this:

$IP stands for the Installation Path (or "directory") of your MediaWiki installation, the same directory that holds LocalSettings.php, index.php etc..
  1. Download the https://github.com/wikimedia/mediawiki-extensions-Lingo/archive/2.0.0.zip last released version or the current development version
    Alternatively you can clone Lingo using git
  2. Extract the files to the $IP/extensions directory
  3. If necessary rename the newly created directory to Lingo
  4. Continue with the Common steps below.

Common steps: Activation[edit]

  1. Add to the end of LocalSettings.php:
  2. Do some customization if necessary (see below)
  3. Go to the Special:Version page of your wiki and verify that an entry for Lingo exists
  4. From Lingo's entry on the Special:Version page follow the link to the Terminology page of your wiki and insert some entries OR (if this page exists already) edit and re-save it to trigger the recreation of the glossary


The following settings may be used:

  • $wgexLingoPage to specify a different name for the terminology page; Example: $wgexLingoPage = 'Glossary';
  • $wgexLingoDisplayOnce to specify that each term should be annotated only once per page; Example: $wgexLingoDisplayOnce = true;
  • $wgexLingoUseNamespaces to specify what namespaces should or should not be used; Example: $wgexLingoUseNamespaces[NS_TALK] = false;
  • $wgexLingoCacheType to set default cache type (null = use main cache); Example: $wgexLingoCacheType = CACHE_NONE;
  • $wgexLingoEnableApprovedRevs to use ApprovedRevs extension on the Terminology page; Example: $wgexLingoEnableApprovedRevs = true;

If you want to use these settings, just include them in LocalSettings.php. If you did not use Composer for the installation, they must come after the require_once("$IP/extensions/Lingo/Lingo.php");

Lingo also provides an interface to plug in alternative dictionaries (backends). If you are interested in that, see Semantic Glossary for an example. You can also drop me a mail.

Finally you can provide your own styling. For the classes used by Lingo for the various HTML elements, please have a look at the style file.


  • NORA online - Dutch Government Reference Architecture website

Add your wiki here!

You can find other examples on the usage and version matrix

Version history[edit]


Lingo is a rewrite of extension Terminology, written by BarkerJr with modifications by Benjamin Kahn. Lingo was originally written by Barry Coughlan and is currently maintained by Stephan Gambke.

Lingo makes use of the jQuery qTip2 library.

Reporting bugs[edit]

Bugs and feature requests should preferably be reported on the Wikimedia bug tracker.

Comments, questions and suggestions should be sent or posted to:

See also[edit]