Extension:LanguageSelector

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

Release status: beta

Implementation MyWiki, Tag, Locale
Description Provides a language selector on every page, also for visitors; automatic detection of visitor's language
Author(s) Daniel Kinzler (Duesentriebtalk)
MediaWiki 1.19+
Database changes No
License GNU General Public License
Download
README
Example translatewiki.net
Parameters
  • $wgLanguageSelectorDetectLanguage
  • $wgLanguageSelectorLanguages
  • $wgLanguageSelectorLocation
Hooks used
AddNewAccount

BeforePageDisplay
GetCacheVaryCookies
ParserFirstCallInit
UserGetLanguageObject
BeforeInitialize
SkinTemplateToolboxEnd
SkinTemplateOutputPageBeforeExec

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

Check usage and version matrix; code metrics

The LanguageSelector extension provides detection of the interface language to use for anonymous visitors, and a menu for selecting the user language on each page, for logged in users as well as anonymous visitors. It also provides an additional tag, <languageselector>, for embedding the selector into wiki pages and system messages.

Language detection is based on the Accept-Language header sent by the browser as part of the HTTP request. Users can also set their preferred language explicitly - this is handled by a separate cookie for anonymous visitors, and in the user preferences for logged in users.

For more comprehensive support for multilingual content, LanguageSelector can be combined with the Multilang and Polyglot extensions.

Note Note: language detection and cookie-based language preferences for anonymous users currently does not work with page caching (MediaWiki filecache, reverse HTTP proxies like squid, etc). It may degrade cache performance and render the cache useless, and it may lead to people seeing the page in a random language. Mediawiki's internal caches (parser, link, query, etc) are not affected.

Installing[edit | edit source]

  • Download and extract the tarball in your extensions/ folder. It should generate a new folder called LanguageSelector directly inside your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
require_once "$IP/extensions/LanguageSelector/LanguageSelector.php";
  • Done! Navigate to "Special:Version" on your wiki to verify that the extension is successfully installed.

Configuration[edit | edit source]

You can specify the following settings in your LocalSettings.php (after including the extension file):

$wgLanguageSelectorLanguages
Languages to be offered to the user for selection. If set to NULL (the default), all languages known to MediaWiki (by $wgExtraLanguageNames) are considered. If the Polyglot extension is installed and $wgPolyglotLanguages is set, that value will be used as a fallback. Setting $wgLanguageSelectorLanguages to a shorter list may be more convenient for users than selecting from a list with more than a hundred mostly useless entries. This variable must be an array, so you can declare it like this:
$wgLanguageSelectorLanguages=array("en", "es", "pt");

The codes "en", "es" and "pt" stand for English, Spanish and Portuguese respectively.

$wgLanguageSelectorShowCode (since rev:55711)
whether to show language codes before the native language name. Default is false;
$wgLanguageSelectorDetectLanguage
Language detection mode for anonymous visitors. Possible values:
  • LANGUAGE_SELECTOR_USE_CONTENT_LANG: do not use detection, always use the wiki's content language (this is mediawiki's normal behavior).
  • LANGUAGE_SELECTOR_PREFER_CONTENT_LANG: use the wiki's content language, setting, if accepted by the client.
  • LANGUAGE_SELECTOR_PREFER_CLIENT_LANG: use the client's preferred language, if it is in $wgLanguageSelectorLanguages.
$wgLanguageSelectorLocation
where to inject the language selector widget. Note that you will probably have to adjust your CSS styles to adopt the language selector to your wiki's style. Possible values of $wgLanguageSelectorLocation:
  • LANGUAGE_SELECTOR_MANUAL: do not show language selector. This can be usefull if you only want to use the auto-detection feature, or only want the selector on a few pages, or if you want to place it manually by putting it into an appropriate system message.
  • LANGUAGE_SELECTOR_AT_TOP_OF_TEXT: inject a dropdown box at the top of page content. This is the default, but it looks quite ugly without extra CSS rules applied.
  • LANGUAGE_SELECTOR_IN_TOOLBOX: inject a dropdown box at the bottom of the toolbox in the sidebar. This only works with the MonoBook skin, or skins explicitly supporting the MonoBookTemplateToolboxEnd hook.
  • LANGUAGE_SELECTOR_AS_PORTLET: inject the language selector as a portlet in the sidebar, similar to how interlanguage-links are shown. Works with MonoBook skin, may also work with some SkinTemplate-based skins.
  • LANGUAGE_SELECTOR_INTO_SITENOTICE: inject a dropdown box at the end of the sitenotice text. Ugly without additional CSS rules applied. Works with MonoBook skin, may also work with some SkinTemplate-based skins.
  • LANGUAGE_SELECTOR_INTO_TITLE: inject a dropdown box at the end of the page title. Ugly without additional CSS rules applied. Works with MonoBook skin, may also work with some SkinTemplate-based skins.
  • LANGUAGE_SELECTOR_INTO_SUBTITLE: inject a dropdown box at the end of the subtitle. Ugly without additional CSS rules applied. Works with MonoBook skin, may also work with some SkinTemplate-based skins.
  • LANGUAGE_SELECTOR_INTO_CATLINKS: inject a dropdown box at the end of the category box. Ugly without additional CSS rules applied. Works with MonoBook skin, may also work with some SkinTemplate-based skins.

Example:

$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_USE_CONTENT_LANG;
$wgLanguageSelectorLocation = LANGUAGE_SELECTOR_IN_TOOLBOX;

See also[edit | edit source]

Language: English  • 日本語