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)|
|Translate the LanguageSelector extension if it is available at translatewiki.net|
|Check usage and version matrix.|
|Issues||Open tasks · Report a bug|
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 Polyglot extension.
- Download and place the file(s) in a directory called
- Add the following code at the bottom of your LocalSettings.php:
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
You can specify the following settings in your LanguageSelector.php (after including the extension file):
- 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;
- 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.
- 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 useful 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.
$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_USE_CONTENT_LANG; $wgLanguageSelectorLocation = LANGUAGE_SELECTOR_IN_TOOLBOX;