--------------------------------------------------------------------------
README for the LanguageSelector extension
Copyright © 2007 Daniel Kinzler
Licenses: GNU General Public License (GPL)
GNU Free Documentation License (GFDL)
--------------------------------------------------------------------------
LanguageSelector is EXPERIMENTAL
The LanguageSelector extension provides detection of the 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.
NOTE: language detection and cookie-based language preferences for anonymous
users will currently not work with page caching (MediaWiki filecache, reverse
HTTP proxies like squid, etc). It may degrade cache performance and make it
useless, and it may lead to people seeing the page in a random language.
Mediawiki's internal caches (parser, link, query, etc) are not effectd.
For more comprehensive support for multilingual content, LanguageSelector can
be combined with the MultiLang and Polyglot extensions.
The LanguageSelector extension was originally written by Daniel Kinzler in 2007
and is released under the GNU General Public License (GPL).
<https://www.mediawiki.org/wiki/Extension:LanguageSelector>
== Installing ==
Copy the LanguageSelector directory into the extensions folder of your
MediaWiki installation. Then add the following line to your
LocalSettings.php file (near the end):
wfLoadExtension( 'LanguageSelector' );
== Configuration ==
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 $wgLanguageNames) 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.
* $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 doesn't work in all skins, mostly in skin
MonoBook, or skins explicitly supporting the SkinTemplateToolboxEnd 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.