Extension: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) | |
Latest version | 1.0.0 |
MediaWiki | 1.35+ |
Database changes | No |
License | GNU General Public License 2.0 or later |
Download | README |
Example | translatewiki.net |
|
|
Quarterly downloads | 31 (Ranked 147th) |
Translate the LanguageSelector extension if it is available at translatewiki.net | |
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.
Installing[edit]
- Download and place the file(s) in a directory called
LanguageSelector
in yourextensions/
folder. - Add the following code at the bottom of your
LocalSettings.php
:wfLoadExtension( 'LanguageSelector' );
Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
To users running MediaWiki 1.35 or earlier:
The instructions above describe the new way of installing this extension using wfLoadExtension()
.
If you need to install this extension on these earlier versions (MediaWiki 1.35 and earlier), instead of wfLoadExtension( 'LanguageSelector' );
, you need to use:
require_once "$IP/extensions/LanguageSelector/LanguageSelector.php";
Configuration[edit]
You can specify the following settings in your LanguageSelector.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 = [ '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 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.
Example:
$wgLanguageSelectorDetectLanguage = LANGUAGE_SELECTOR_USE_CONTENT_LANG;
$wgLanguageSelectorLocation = LANGUAGE_SELECTOR_IN_TOOLBOX;
![]() | This extension is included in the following packages and/or wiki farms: This is not an authoritative list. Some wiki farms/hosts may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |
- Beta status extensions
- Personalization extensions
- Tag extensions
- Internationalization extensions
- GPL licensed extensions
- Extensions in Wikimedia version control
- BeforePageDisplay extensions
- GetCacheVaryCookies extensions
- LocalUserCreated extensions
- ParserFirstCallInit extensions
- SkinAfterPortlet extensions
- SkinTemplateOutputPageBeforeExec extensions
- UserGetLanguageObject extensions
- All extensions
- Extensions included in Miraheze