--------------------------------------------------------------------------
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).

<http://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):

  require_once( "$IP/extensions/LanguageSelector/LanguageSelector.php" );

== 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.
