Extension:Interlanguage

The Interlanguage extension and its pair Interlanguage Central extension aim to ease the handling of interlanguage links. From A newer look at the interwiki link:


 * As the Wikimedia projects grow, more articles are written about the same subject in different languages. When one interlanguage link is added in one project it will eventually be added to the other as well. In the case where 20 languages have an article on the same subject, each article should link to 19 other languages, so there are 20*19=380 links to edit and maintain. In case of 100 languages, the number of interlanguage links will amount to nearly 10,000.

Usage
The Interlanguage extension avoids this problem by fetching interlanguage links from another wiki (further: central wiki) whenever a page is saved (or purged). Central wiki may be a separate wiki, or one of the existing wikis. On the central wiki, the Interlanguage Central extension should be installed.

On the central wiki, interlanguage links are maintained the same way they are on any MediaWiki wiki. On wikis with the Interlanguage Extension installed, interlanguage links could now be added by writing  , which will fetch all the interlanguage links from the central wiki page "article name". If the article on the central wiki doesn't exist, a red link towards it will be made so that it could be easily created. When a new interlanguage link is added to the central wiki, the Interlanguage Central extension purges the articles on the projects and updates their interlanguage links.

The extension doesn't interfere with usual working of interlanguage links. They may continue to be used in parallel to the extension.

Interlanguage extension
Download the source files into your extensions/ directory, then add the following to your LocalSettings.php:

Variable $wgInterlanguageExtensionApiUrl tells the extension where to find the MediaWiki API of the central wiki. For example, if you would want to fetch interlanguage links from the English Wikipedia (which you may do for testing purposes), the URL should be 'http://en.wikipedia.org/w/api.php '. This variable is mandatory and the extension can't function without it.

The variable $wgInterlanguageExtensionInterwiki tells the extension what the interwiki prefix of the central wiki is, which will be used to create link towards it if needed. It must include the colon at the end of the prefix. For example, if you are fetching interlanguage links from the English Wikipedia, it should be set to 'wikipedia:'. This variable is mandatory and the extension can't properly function without it.

The variable $wgInterlanguageExtensionSort selects the sort method you want to use for the interwiki links. Currently, it recognises four sort methods: This variable may be omitted, in which case the 'none' sort mode will be used.
 * 'code'</tt>: By language code
 * 'alphabetic'</tt>: By language name
 * 'alphabetic_revised'</tt>: By language name (alternative)
 * 'none'</tt>: Don't sort. Use the same order as on the central wiki.

The variable $wgInterlanguageExtensionSortPrepend</tt> modifies the sort method so that it sorts certain languages at the top of the list of languages, regardless of their general sort order. It should be set to an array that has values set to desired language codes, in desired order. For example, to put English and then Simple English at the top of the list of languages, set it to array( 'en', 'simple' )</tt>. This variable may be omitted, in which case the sort will be used unmodified.

The variable $wgInterlanguageExtensionPrefix</tt> tells the extension to use a namespace or a subpage on the central wiki. All page names will be prepended with it before the interlanguage links are fetched from the central wiki. It must include the colon or the slash at the end of the prefix. This variable may be omitted, in which case no prefix will be used.

Interlanguage Central extension
Download the source files into your extensions/</tt> directory, then add the following to your LocalSettings.php:

Variable $wgInterlanguageCentralExtensionIndexUrl</tt> tells the extension where to find MediaWiki's index.php of daughter wikis in order to purge their pages. The URL must include a literal %s</tt> which will be replaced with language code of the wiki. For example, the correct URL for Wikipedias would be 'http://%s.wikipedia.org/w/index.php '</tt>. This variable is mandatory and the extension can't function without it.

Variable $wgJobRunRate is a standard MediaWiki variable and not a part of this extension. However, it is strongly advised to set it to 0 and run maintenance/runJobs.php</tt> periodically, or else editors of the central wiki may find it very slow. This variable may be omitted.

1.0
June 10 2008: Initial release.

1.1
November 14 2008: Increased robustness and usability, more options.


 * Uses MediaWiki's Http::get</tt> instead of file_get_contents</tt> &mdash; much better response if the central wiki is down.
 * No longer uses hash:  </tt> instead of   </tt>.
 * If API request fails, keep existing interlanguage links.
 * If the central wiki doesn't have the requested page, display a red link to it.
 * New configuration parameter <tt>$wgInterlanguageExtensionInterwiki</tt>, for the interwiki prefix of the central wiki.
 * New configuration parameter <tt>$wgInterlanguageExtensionPrefix</tt>, enables using a namespace or a subpage on the central wiki.
 * New configuration parameter <tt>$wgInterlanguageExtensionSortPrepend</tt>, enables using a custom sort order.
 * Take care of API's <tt>lllimit</tt> parameter.
 * Updated language sorting to take care of new languages.
 * More code comments.

1.2
Various smaller changes in the SVN.


 * Support for memcached.
 * See diff of all the changes.

1.3
July 30 2010: Display link(s) to the page(s) on the central wiki with interlanguage links below the edit form.


 * Displays link(s) to the page(s) on the central wiki with interlanguage links below the edit form.
 * Displays the links when editing.
 * Saves the links upon article save (in page_props table) so that they could be displayed.
 * Now contained in one class.
 * Updated language sorting to take care of new languages.
 * More and nicer code comments.

1.0
July 25 2010: Initial release.