Jump to content

Manual:$wgShellLocale

From mediawiki.org
Shell and process control: $wgShellLocale
Locale for LC_ALL.
Introduced in version:1.14.0
Removed in version:1.38.0 (Gerrit change 722705; git #65b1b6b5)
Allowed values:Unspecified
Default value:'C.UTF-8' (1.30-1.37)
'en_US.utf8' (1.14-1.29)

Details

Locale for LC_ALL, to provide a known environment for locale-sensitive operations. It is applied for all requests. In MediaWiki 1.29 and older it only affected "LC_CTYPE".

For Unix-like operating systems, this should be set to C.UTF-8 or an equivalent to provide the most consistent behavior for locale-sensitive C library operations across different-language wikis. If that locale is not available, use another locale that has a UTF-8 character set.

This setting mainly affects the behavior of C library functions, including:

  • String collation (order when sorting using locale-sensitive comparison)
    • For example, whether "Å" and "A" are considered to be the same letter or different letters and if different whether it comes after "A" or after "Z", and whether sorting is case sensitive.
  • String character set (how characters beyond basic ASCII are represented)
  • Language used for low-level error messages.
  • Formatting of date/time and numeric values (e.g. '.' versus ',' as the decimal separator)

MediaWiki provides its own methods and classes to perform many locale-sensitive operations, which are designed to be able to vary locale based on wiki language or user preference:

  • MediaWiki's Collation class should generally be used instead of the C library collation functions when locale-sensitive sorting is needed.
  • MediaWiki's Message class should be used for localization of messages displayed to the user.
  • MediaWiki's Language class should be used for formatting numeric and date/time values.
If multiple wikis are being served from the same process (e.g. the same fastCGI or Apache server), this setting must be the same on all those wikis.

See here for a list of Locale IDs (LCID).

The installer will set this value in the generated LocalSettings.php by looking at which locales are available. So if the preferred C.UTF-8 locale isn't available, the installer could potentially fallback to en_US.utf8.