MediaWiki  REL1_22
Language Class Reference

Internationalisation code. More...

Inheritance diagram for Language:
Collaboration diagram for Language:

List of all members.

Public Member Functions

 __construct ()
 __destruct ()
 Reduce memory usage.
 addMagicWordsByLang ($newWords)
 Add magic words to the extension array.
 alignEnd ()
 Return 'right' or 'left' as appropriate alignment for line-end for this language's text direction.
 alignStart ()
 Return 'left' or 'right' as appropriate alignment for line-start for this language's text direction.
 armourMath ($text)
 Put custom tags (e.g.
 autoConvertToAllVariants ($text)
 convert text to all supported variants
 capitalizeAllNouns ()
 caseFold ($s)
 Return a case-folded representation of $s.
 checkTitleEncoding ($s)
 commafy ($number)
 Adds commas to a given number.
 commaList (array $list)
 Take a list of strings and build a locale-friendly comma-separated list, using the local comma-separator message.
 convert ($text)
 convert text to different variants of a language.
 convertCategoryKey ($key)
 convertForSearchResult ($termsArray)
 convertGrammar ($word, $case)
 Grammatical transformations, needed for inflected languages Invoked by putting {{grammar:case|word}} in a message.
 convertHtml ($text, $isTitle=false)
 Perform output conversion on a string, and encode for safe HTML output.
 convertLinkToAllVariants ($text)
 If a language supports multiple variants, converts text into an array of all possible variants of the text: 'variant' => text in that variant.
 convertNamespace ($ns)
 Convert a namespace index to a string in the preferred variant.
 convertPlural ($count, $forms)
 Plural form transformations, needed for some languages.
 convertTitle ($title)
 Convert a Title object to a string in the preferred variant.
 date ($ts, $adj=false, $format=true, $timecorrection=false)
 dateFormat ($usePrefs=true)
 This is meant to be used by time(), date(), and timeanddate() to get the date preference they're supposed to use, it should be used in all children.
 digitGroupingPattern ()
 digitTransformTable ()
 emphasize ($text)
 Italic is unsuitable for some languages.
 fallback8bitEncoding ()
 findVariantLink (&$link, &$nt, $ignoreOtherCond=false)
 If a language supports multiple variants, it is possible that non-existing link in one variant actually exists in another variant.
 firstChar ($s)
 Get the first character of a string.
 fixVariableInNamespace ($talk)
 formatBitrate ($bps)
 Format a bitrate for output, using an appropriate unit (bps, kbps, Mbps, Gbps, Tbps, Pbps, Ebps, Zbps or Ybps) according to the magnitude in question.
 formatComputingNumbers ($size, $boundary, $messageKey)
 formatDuration ($seconds, array $chosenIntervals=array())
 Takes a number of seconds and turns it into a text using values such as hours and minutes.
 formatExpiry ($expiry, $format=true)
 Decode an expiry (block, protection, etc) which has come from the DB.
 formatNum ($number, $nocommafy=false)
 Normally we output all numbers in plain en_US style, that is 293,291.235 for twohundredninetythreethousand-twohundredninetyone point twohundredthirtyfive.
 formatNumNoSeparators ($number)
 Front-end for non-commafied formatNum.
 formatSize ($size)
 Format a size in bytes for output, using an appropriate unit (B, KB, MB, GB, TB, PB, EB, ZB or YB) according to the magnitude in question.
 formatTimePeriod ($seconds, $format=array())
 gender ($gender, $forms)
 Provides an alternative text depending on specified gender.
 getAllMessages ()
 getArrow ($direction= 'forwards')
 An arrow, depending on the language direction.
 getBookstoreList ()
 Exports $wgBookstoreListEn.
 getCode ()
 Get the RFC 3066 code for this language object.
 getCompiledPluralRules ()
 Get the compiled plural rules for the language.
 getConverter ()
 Return the LanguageConverter used in the Language.
 getConvRuleTitle ()
 Get the conversion rule title, if any.
 getDateFormats ()
 getDateFormatString ($type, $pref)
 Get a format string for a given type and preference.
 getDatePreferenceMigrationMap ()
 getDatePreferences ()
 getDefaultDateFormat ()
 getDefaultVariant ()
 getDir ()
 Return the correct HTML 'dir' attribute value for this language.
 getDirMark ($opposite=false)
 A hidden direction mark (LRM or RLM), depending on the language direction.
 getDirMarkEntity ($opposite=false)
 A hidden direction mark (LRM or RLM), depending on the language direction.
 getDurationIntervals ($seconds, array $chosenIntervals=array())
 Takes a number of seconds and returns an array with a set of corresponding intervals.
 getExtraHashOptions ()
 returns language specific options used by User::getPageRenderHash() for example, the preferred language variant
 getExtraUserToggles ()
 getFallbackLanguageCode ()
 Same as getFallbacksFor for current language.
 getFallbackLanguages ()
 getFormattedNamespaces ()
 A convenience function that returns the same thing as getNamespaces() except with the array values changed to ' ' where it found '_', useful for producing output to be displayed e.g.
 getFormattedNsText ($index)
 A convenience function that returns the same thing as getNsText() except with '_' changed to ' ', useful for producing output.
 getGenderNsText ($index, $gender)
 Returns gender-dependent namespace alias if available.
 getGrammarForms ()
 Get the grammar forms for the content language.
 getHebrewCalendarMonthName ($key)
 getHebrewCalendarMonthNameGen ($key)
 getHijriCalendarMonthName ($key)
 getHtmlCode ()
 Get the code in Bcp47 format which we can use inside of html lang="" tags.
 getHumanTimestamp (MWTimestamp $ts, MWTimestamp $relativeTo, User $user)
 Convert an MWTimestamp into a pretty human-readable timestamp using the given user preferences and relative base time.
 getImageFile ($image)
 getIranianCalendarMonthName ($key)
 getLangObj ()
 getLanguageName ($code)
 Get the native language name of $code.
 getLocalNsIndex ($text)
 Get a namespace key by value, case insensitive.
 getMagic ($mw)
 Fill a MagicWord object with data from here.
 getMagicWords ()
 Get all magic words from cache.
 getMessage ($key)
 getMessageFromDB ($msg)
 Get a message from the MediaWiki namespace.
 getMonthAbbreviation ($key)
 getMonthAbbreviationsArray ()
 getMonthName ($key)
 getMonthNameGen ($key)
 getMonthNamesArray ()
 getNamespaceAliases ()
 getNamespaceIds ()
 getNamespaces ()
 Returns an array of localised namespaces indexed by their numbers.
 getNsIndex ($text)
 Get a namespace key by value, case insensitive.
 getNsText ($index)
 Get a namespace value by key $mw_ns = $wgContLang->getNsText( NS_MEDIAWIKI ); echo $mw_ns; // prints 'MediaWiki'
 getParentLanguage ()
 Get the "parent" language which has a converter to convert a "compatible" language (in another variant) to this language (eg.
 getParsedTitle ()
 For languages that support multiple variants, the title of an article may be displayed differently in different variants.
 getPluralRuleIndexNumber ($number)
 Find the index number of the plural rule appropriate for the given number.
 getPluralRules ()
 Get the plural rules for the language.
 getPluralRuleType ($number)
 Find the plural rule type appropriate for the given number For example, if the language is set to Arabic, getPluralType(5) should return 'few'.
 getPluralRuleTypes ()
 Get the plural rule types for the language.
 getPreferredVariant ()
 getSpecialPageAliases ()
 Get special page names, as an associative array case folded alias => real name.
 getURLVariant ()
 getUserToggle ($tog)
 getVariantname ($code, $usemsg=true)
 short names for language variants used for language conversion links.
 getVariants ()
 Get the list of variants supported by this language see sample implementation in LanguageZh.php.
 getWeekdayAbbreviation ($key)
 getWeekdayName ($key)
 hasVariant ($variant)
 Check if the language has the specific variant.
 hasVariants ()
 Check if this is a language with variants.
 hasWordBreaks ()
 Most writing systems use whitespace to break up words.
 iconv ($in, $out, $string)
 initContLang ()
 Hook which will be called if this is the content language.
 initEncoding ()
 isMultibyte ($str)
 isRTL ()
 For right-to-left language support.
 lc ($str, $first=false)
 lcCallback ($matches)
 lcfirst ($str)
 linkPrefixExtension ()
 To allow "foo[[bar]]" to extend the link over the whole word "foobar".
 linkTrail ()
 A regular expression to match legal word-trailing characters which should be merged onto a link of the form [[foo]]bar.
 listToText (array $l)
 Take a list of strings and build a locale-friendly comma-separated list, using the local comma-separator message.
 markNoConversion ($text, $noParse=false)
 Prepare external link text for conversion.
 needsGenderDistinction ()
 Whether this language makes distinguishes genders for example in namespaces.
 normalize ($s)
 Convert a UTF-8 string to normal form C.
 normalizeForSearch ($string)
 Some languages have special punctuation need to be normalized.
 parseFormattedNumber ($number)
 pipeList (array $list)
 Same as commaList, but separate it with the pipe instead.
 recodeForEdit ($s)
 recodeInput ($s)
 replaceGrammarInNamespace ($m)
 resetNamespaces ()
 Resets all of the namespace caches.
 segmentByWord ($string)
 Some languages such as Chinese require word segmentation, Specify such segmentation when overridden in derived class.
 segmentForDiff ($text)
 languages like Chinese need to be segmented in order for the diff to be of any use
 semicolonList (array $list)
 Take a list of strings and build a locale-friendly semicolon-separated list, using the local semicolon-separator message.
 separatorTransformTable ()
 setCode ($code)
 setNamespaces (array $namespaces)
 Arbitrarily set all of the namespace names at once.
 specialList ($page, $details, $oppositedm=true)
 Make a list item, used by various special pages.
 specialPage ($name)
 sprintfDate ($format, $ts, DateTimeZone $zone=null)
 This is a workalike of PHP's date() function, but with better internationalisation, a reduced set of format characters, and a better escaping format.
 time ($ts, $adj=false, $format=true, $timecorrection=false)
 timeanddate ($ts, $adj=false, $format=true, $timecorrection=false)
 transformUsingPairFile ($file, $string)
 Transform a string using serialized data stored in the given file (which must be in the serialized subdirectory of $IP).
 translateBlockExpiry ($str)
 truncate ($string, $length, $ellipsis= '...', $adjustLength=true)
 Truncate a string to a specified length in bytes, appending an optional string (e.g.
 truncateHtml ($text, $length, $ellipsis= '...')
 Truncate a string of valid HTML to a specified length in bytes, appending an optional string (e.g.
 uc ($str, $first=false)
 Convert a string to uppercase.
 ucCallback ($matches)
 ucfirst ($str)
 Make a string's first character uppercase.
 ucwordbreaks ($str)
 capitalize words at word breaks
 ucwordbreaksCallbackAscii ($matches)
 ucwordbreaksCallbackMB ($matches)
 ucwords ($str)
 ucwordsCallbackMB ($matches)
 ucwordsCallbackWiki ($matches)
 unsegmentForDiff ($text)
 and unsegment to show the result
 userAdjust ($ts, $tz=false)
 Used by date() and time() to adjust the time output.
 userDate ($ts, User $user, array $options=array())
 Get the formatted date for the given timestamp and formatted for the given user.
 userTime ($ts, User $user, array $options=array())
 Get the formatted time for the given timestamp and formatted for the given user.
 userTimeAndDate ($ts, User $user, array $options=array())
 Get the formatted date and time for the given timestamp and formatted for the given user.
 viewPrevNext (Title $title, $offset, $limit, array $query=array(), $atend=false)
 Generate (prev x| next x) (20|50|100...) type links for paging.

Static Public Member Functions

static classFromCode ($code)
static factory ($code)
 Get a cached or new language object for a given language code.
static fetchLanguageName ($code, $inLanguage=null, $include= 'all')
static fetchLanguageNames ($inLanguage=null, $include= 'mw')
 Get an array of language names, indexed by code.
static getCaseMaps ()
static getClassFileName ($code)
static getCodeFromFileName ($filename, $prefix= 'Language', $suffix= '.php')
 Get the language code from a file name.
static getFallbackFor ($code)
 Get the first fallback for a given language.
static getFallbacksFor ($code)
 Get the ordered list of fallback languages.
static getFallbacksIncludingSiteLanguage ($code)
 Get the ordered list of fallback languages, ending with the fallback language chain for the site language.
static getFileName ($prefix= 'Language', $code, $suffix= '.php')
 Get the name of a file for a certain language code.
static getLanguageNames ($customisedOnly=false)
 Get native language names, indexed by code.
static getLocalisationCache ()
 Get the LocalisationCache instance.
static getMessageFor ($key, $code)
 Get a message for a given language.
static getMessageKeysFor ($code)
 Get all message keys for a given language.
static getMessagesFileName ($code)
static getMessagesFor ($code)
 Get all messages for a given language WARNING: this may take a long time.
static getTranslatedLanguageNames ($code)
 Get translated language names.
static hebrewNumeral ($num)
 Hebrew Gematria number formatting up to 9999.
static isKnownLanguageTag ($tag)
 Returns true if a language code is an IETF tag known to MediaWiki.
static isSupportedLanguage ($code)
 Checks whether any localisation is available for that language tag in MediaWiki (MessagesXx.php exists).
static isValidBuiltInCode ($code)
 Returns true if a language code is of a valid form for the purposes of internal customisation of MediaWiki, via Messages*.php.
static isValidCode ($code)
 Returns true if a language code string is of a valid form, whether or not it exists.
static isWellFormedLanguageTag ($code, $lenient=false)
 Returns true if a language code string is a well-formed language tag according to RFC 5646.
static preloadLanguageClass ($class)
 Includes language class files.
static romanNumeral ($num)
 Roman number formatting up to 10000.

Public Attributes

 $dateFormatStrings = array()
 $mCode
LanguageConverter $mConverter
 $mExtendedSpecialPageAliases
 $mLoaded = false
 $mMagicExtensions = array()
 $mMagicHookDone = false
 $mNamespaceIds
 $mParentLanguage = false
 $mVariants
 $namespaceAliases
 $transformData = array()
 ReplacementArray object caches.

Static Public Attributes

static $dataCache
static $durationIntervals
static $mHebrewCalendarMonthGenMsgs
static $mHebrewCalendarMonthMsgs
static $mHijriCalendarMonthMsgs
static $mIranianCalendarMonthMsgs
static $mLangObjCache = array()
static $mMonthAbbrevMsgs
static $mMonthGenMsgs
static $mMonthMsgs
static $mWeekdayAbbrevMsgs
static $mWeekdayMsgs

Protected Member Functions

 doMagicHook ()
 Run the LanguageGetMagic hook once.
 handleExplicitPluralForms ($count, array $forms)
 Handles explicit plural forms for Language::convertPlural()
 preConvertPlural ($forms, $count)
 Checks that convertPlural was given an array and pads it to requested amount of forms by copying the last one.
 removeBadCharFirst ($string)
 Remove bytes that represent an incomplete Unicode character at the start of string (e.g.
 removeBadCharLast ($string)
 Remove bytes that represent an incomplete Unicode character at the end of string (e.g.

Static Protected Member Functions

static convertDoubleWidth ($string)
 convert double-width roman characters to single-width.
static insertSpace ($string, $pattern)
static newFromCode ($code)
 Create a language object for a given language code.

Protected Attributes

 $namespaceNames

Private Member Functions

 internalUserTimeAndDate ($type, $ts, User $user, array $options)
 Internal helper function for userDate(), userTime() and userTimeAndDate()
 numLink (Title $title, $offset, $limit, array $query, $link, $tooltipMsg, $class)
 Helper function for viewPrevNext() that generates links.
 truncate_endBracket (&$tag, $tagType, $lastCh, &$openTags)
 truncateHtml() helper function (a) push or pop $tag from $openTags as needed (b) clear $tag value
 truncate_skip (&$ret, $text, $search, $start, $len=null)
 truncateHtml() helper function like strcspn() but adds the skipped chars to $ret

Static Private Member Functions

static hebrewYearStart ($year)
 This calculates the Hebrew year start, as days since 1 September.
static tsToHebrew ($ts)
 Converting Gregorian dates to Hebrew dates.
static tsToHijri ($ts)
 Converting Gregorian dates to Hijri dates.
static tsToIranian ($ts)
 Algorithm by Roozbeh Pournader and Mohammad Toossi to convert Gregorian dates to Iranian dates.
static tsToYear ($ts, $cName)
 Algorithm to convert Gregorian dates to Thai solar dates, Minguo dates or Minguo dates.

Private Attributes

 $mHtmlCode = null

Static Private Attributes

static $fallbackLanguageCache = array()
static $GREG_DAYS = array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 )
static $IRANIAN_DAYS = array( 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 )

Detailed Description

Internationalisation code.

Definition at line 75 of file Language.php.


Constructor & Destructor Documentation

Reduce memory usage.

Definition at line 464 of file Language.php.


Member Function Documentation

Add magic words to the extension array.

Parameters:
$newWordsarray

Definition at line 3029 of file Language.php.

Return 'right' or 'left' as appropriate alignment for line-end for this language's text direction.

Should be equivalent to CSS3 'end' text-align value....

Returns:
String

Definition at line 2897 of file Language.php.

Return 'left' or 'right' as appropriate alignment for line-start for this language's text direction.

Should be equivalent to CSS3 'start' text-align value....

Returns:
String

Definition at line 2885 of file Language.php.

Language::armourMath ( text)

Put custom tags (e.g.

-{ }-) around math to prevent conversion

Parameters:
$textstring
Returns:
string
Deprecated:
since 1.22 is no longer used

Definition at line 3836 of file Language.php.

convert text to all supported variants

Parameters:
$textstring
Returns:
array

Definition at line 3775 of file Language.php.

Returns:
array

Definition at line 2941 of file Language.php.

Return a case-folded representation of $s.

This is a representation such that caseFold($s1)==caseFold($s2) if $s1 and $s2 are the same except for the case of their characters. It is not necessary for the value returned to make sense when displayed.

Do *not* perform any other normalisation in this function. If a caller uses this function when it should be using a more general normalisation function, then fix the caller.

Parameters:
$sstring
Returns:
string

Definition at line 2609 of file Language.php.

Parameters:
$sstring
Returns:
string

Definition at line 2617 of file Language.php.

static Language::classFromCode ( code) [static]
Parameters:
$code
Returns:
String Name of the language class

Definition at line 411 of file Language.php.

Language::commafy ( number)

Adds commas to a given number.

Since:
1.19
Parameters:
$numbermixed
Returns:
string

Reimplemented in LanguageKk_cyrl, LanguageKsh, LanguageRu, LanguageUk, LanguageHy, LanguageKaa, LanguageBe_tarask, LanguageBg, LanguageKu_ku, LanguageEt, LanguageKm, LanguageMy, LanguageEs, and LanguagePl.

Definition at line 3147 of file Language.php.

Take a list of strings and build a locale-friendly comma-separated list, using the local comma-separator message.

Parameters:
$listarray of strings to put in a comma list
Returns:
string

Definition at line 3255 of file Language.php.

Language::convert ( text)

convert text to different variants of a language.

Parameters:
$textstring
Returns:
string

Definition at line 3785 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 3855 of file Language.php.

static Language::convertDoubleWidth ( string) [static, protected]

convert double-width roman characters to single-width.

range: ff00-ff5f ~= 0020-007f

Parameters:
$stringstring
Returns:
string

Definition at line 2677 of file Language.php.

Referenced by LanguageZh\convertForSearchResult(), and LanguageYue\normalizeForSearch().

Parameters:
$termsArrayarray
Returns:
array

Reimplemented in LanguageZh.

Definition at line 2707 of file Language.php.

Language::convertGrammar ( word,
case 
)

Grammatical transformations, needed for inflected languages Invoked by putting {{grammar:case|word}} in a message.

Parameters:
$wordstring
$casestring
Returns:
string

Reimplemented in LanguageKk, LanguageKsh, LanguageOs, LanguageBs, LanguageHe, LanguageLa, LanguageKaa, LanguageRu, LanguageDsb, LanguageFi, LanguageHy, LanguageSl, LanguageTyv, LanguageCu, LanguageGa, LanguageHsb, LanguageUk, and LanguageHu.

Definition at line 3565 of file Language.php.

Language::convertHtml ( text,
isTitle = false 
)

Perform output conversion on a string, and encode for safe HTML output.

Parameters:
$textString text to be converted
$isTitleBool whether this conversion is for the article title
Returns:
string
Todo:
this should get integrated somewhere sane

Definition at line 3847 of file Language.php.

If a language supports multiple variants, converts text into an array of all possible variants of the text: 'variant' => text in that variant.

Deprecated:
since 1.17 Use autoConvertToAllVariants()
Parameters:
$textstring
Returns:
string

Definition at line 3917 of file Language.php.

Convert a namespace index to a string in the preferred variant.

Parameters:
$nsint
Returns:
string

Definition at line 3805 of file Language.php.

Language::convertPlural ( count,
forms 
)

Plural form transformations, needed for some languages.

For example, there are 3 form of plural in Russian and Polish, depending on "count mod 10". See [[w:Plural]] For English it is pretty simple.

Invoked by putting {{plural:count|wordform1|wordform2}} or {{plural:count|wordform1|wordform2|wordform3}}

Example: {{plural:{{NUMBEROFARTICLES}}|article|articles}}

Parameters:
$countInteger: non-localized number
$formsArray: different plural forms
Returns:
string Correct form of plural for $count in this language

Reimplemented in LanguageKsh.

Definition at line 3632 of file Language.php.

Language::convertTitle ( title)

Convert a Title object to a string in the preferred variant.

Parameters:
$titleTitle
Returns:
string

Definition at line 3795 of file Language.php.

Language::date ( ts,
adj = false,
format = true,
timecorrection = false 
)
Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$adjBool: whether to adjust the time output according to the user configured offset ($timecorrection)
$formatMixed: true to use user's date format preference
$timecorrectionString|bool the time offset as returned by validateTimeZone() in Special:Preferences
Returns:
string

Reimplemented in LanguageWa.

Definition at line 2040 of file Language.php.

Referenced by LanguageFi\translateBlockExpiry().

Language::dateFormat ( usePrefs = true)

This is meant to be used by time(), date(), and timeanddate() to get the date preference they're supposed to use, it should be used in all children.

function timeanddate([...], $format = true) { $datePreference = $this->dateFormat($format); [...] }

Parameters:
$usePrefsMixed: if true, the user's preference is used if false, the site/language default is used if int/string, assumed to be a format.
Returns:
string

Definition at line 1978 of file Language.php.

Referenced by LanguageWa\date(), and LanguageWa\timeanddate().

Returns:
String

Definition at line 3199 of file Language.php.

Returns:
array

Definition at line 3206 of file Language.php.

Language::doMagicHook ( ) [protected]

Run the LanguageGetMagic hook once.

Definition at line 2988 of file Language.php.

Language::emphasize ( text)

Italic is unsuitable for some languages.

Parameters:
$textString: the text to be emphasized.
Returns:
string

Reimplemented in LanguageJa.

Definition at line 3062 of file Language.php.

static Language::factory ( code) [static]

Get a cached or new language object for a given language code.

Parameters:
$codeString
Returns:
Language

Definition at line 185 of file Language.php.

Referenced by CliInstaller\__construct(), StubContLang\_newObject(), BackupDumperPageTest\addDBData(), MessageCacheTest\configureLanguages(), ApiWatch\execute(), ApiQueryAllMessages\execute(), DateFormats\execute(), LangMemUsage\execute(), PurgeParserCache\execute(), UpdateMediaWiki\execute(), ResourceLoaderContext\getDirection(), ResourceLoaderLanguageDataModule\getModifiedHash(), ContentHandler\getPageViewLanguage(), Title\getPageViewLanguage(), ResourceLoaderLanguageDataModule\getScript(), LoginForm\processLogin(), MessageTest\setUp(), HtmlTest\setUp(), RevisionTest\setUp(), LanguageConverterTest\setUp(), TestSample\setUp(), TitleTest\setUp(), MediaWikiLangTestCase\setUp(), ExtraParserTest\setUp(), TimestampTest\setUp(), XmlTest\setUp(), BlockTest\setUp(), SideBarTest\setUp(), NewParserTest\setUp(), LanguageClassesTestCase\setUp(), NewParserTest\setupGlobals(), ArticleTablesTest\testbug14404(), LanguageTest\testGetNamespaceAliases(), TitleTest\testGetPageViewLanguage(), LanguageTest\testGetParentLanguage(), LanguageConverterTest\testGetPreferredVariantDefaultLanguageVsUrlVariant(), LanguageConverterTest\testGetPreferredVariantHeaderUserVsUrl(), LanguageConverterTest\testGetPreferredVariantUserOptionForForeignLanguage(), MessageTest\testInContentLanguageDisabled(), MessageTest\testInContentLanguageEnabled(), MessageTest\testInLanguage(), MessageTest\testMessageParamTypes(), wfGetLangObj(), and wfInstallerMain().

Returns:
array

Definition at line 2631 of file Language.php.

static Language::fetchLanguageName ( code,
inLanguage = null,
include = 'all' 
) [static]
Parameters:
$codestring: The code of the language for which to get the name
$inLanguagenull|string: Code of language in which to return the name (null for autonyms)
$includestring: 'all', 'mw' or 'mwfile'; see fetchLanguageNames()
Returns:
string: Language name or empty
Since:
1.20

Definition at line 929 of file Language.php.

Referenced by FormatMetadata\getFormattedData(), SkinTemplate\getLanguages(), wikiStatsOutput\heading(), FormatMetadata\langItem(), CoreParserFunctions\language(), WikitextContentHandler\makeRedirectContent(), CheckLanguageCLI\outputWiki(), and InfoAction\pageInfo().

static Language::fetchLanguageNames ( inLanguage = null,
include = 'mw' 
) [static]

Get an array of language names, indexed by code.

Parameters:
$inLanguagenull|string: Code of language in which to return the names Use null for autonyms (native names)
$includestring: 'all' all available languages 'mw' only if the language is defined in MediaWiki or wgExtraLanguageNames (default) 'mwfile' only if the language is in 'mw' *and* has a message file
Returns:
array: language code => language name
Since:
1.20

Definition at line 872 of file Language.php.

Referenced by languages\__construct(), ApiQuerySiteinfo\appendInterwikiMap(), ApiQuerySiteinfo\appendLanguages(), RebuildLocalisationCache\execute(), DeleteEqualMessages\execute(), WebInstaller_Language\execute(), Xml\languageSelector(), Preferences\profilePreferences(), and wfGetLangObj().

Language::findVariantLink ( &$  link,
&$  nt,
ignoreOtherCond = false 
)

If a language supports multiple variants, it is possible that non-existing link in one variant actually exists in another variant.

this function tries to find it. See e.g. LanguageZh.php

Parameters:
$linkString: the name of the link
$ntMixed: the title object of the link
$ignoreOtherCondBoolean: to disable other conditions when we need to transclude a template or update a category's link
Returns:
null the input parameters may be modified upon return

Definition at line 3902 of file Language.php.

Get the first character of a string.

Parameters:
$sstring
Returns:
string

Definition at line 2719 of file Language.php.

Parameters:
$talk
Returns:
mixed

Definition at line 4211 of file Language.php.

Format a bitrate for output, using an appropriate unit (bps, kbps, Mbps, Gbps, Tbps, Pbps, Ebps, Zbps or Ybps) according to the magnitude in question.

This use base 1000. For base 1024 use formatSize(), for another base see formatComputingNumbers()

Parameters:
$bpsint
Returns:
string

Definition at line 4395 of file Language.php.

Language::formatComputingNumbers ( size,
boundary,
messageKey 
)
Parameters:
$sizeint Size of the unit
$boundaryint Size boundary (1000, or 1024 in most cases)
$messageKeystring Message key to be uesd
Returns:
string

Definition at line 4405 of file Language.php.

Language::formatDuration ( seconds,
array chosenIntervals = array() 
)

Takes a number of seconds and turns it into a text using values such as hours and minutes.

Since:
1.20
Parameters:
integer$secondsThe amount of seconds.
array$chosenIntervalsThe intervals to enable.
Returns:
string

Reimplemented in LanguageZh_hans.

Definition at line 2098 of file Language.php.

Language::formatExpiry ( expiry,
format = true 
)

Decode an expiry (block, protection, etc) which has come from the DB.

Todo:
FIXME: why are we returnings DBMS-dependent strings???
Parameters:
$expiryString: Database expiry String
$formatBool|Int true to process using language functions, or TS_ constant to return the expiry in a given timestamp
Returns:
String
Since:
1.18

Definition at line 4269 of file Language.php.

Language::formatNum ( number,
nocommafy = false 
)

Normally we output all numbers in plain en_US style, that is 293,291.235 for twohundredninetythreethousand-twohundredninetyone point twohundredthirtyfive.

However this is not suitable for all languages, some such as Punjabi want ੨੯੩,੨੯੫.੨੩੫ and others such as Icelandic just want to use commas instead of dots, and dots instead of commas like "293.291,235".

An example of this function being called: wfMessage( 'message' )->numParams( $num )->text()

See LanguageGu.php for the Gujarati implementation and $separatorTransformTable on MessageIs.php for the , => . and . => , implementation.

Todo:
check if it's viable to use localeconv() for the decimal separator thing.
Parameters:
$numberMixed: the string to be formatted, should be an integer or a floating point number.
$nocommafyBool: set to true for special numbers like dates
Returns:
string

Definition at line 3090 of file Language.php.

Front-end for non-commafied formatNum.

Parameters:
mixed$numberthe string to be formatted, should be an integer or a floating point number.
Since:
1.21
Returns:
string

Definition at line 3118 of file Language.php.

Language::formatSize ( size)

Format a size in bytes for output, using an appropriate unit (B, KB, MB, GB, TB, PB, EB, ZB or YB) according to the magnitude in question.

This method use base 1024. For base 1000 use formatBitrate(), for another base see formatComputingNumbers()

Parameters:
$sizeint Size to format
Returns:
string Plain text (not HTML)

Definition at line 4443 of file Language.php.

Language::formatTimePeriod ( seconds,
format = array() 
)
Todo:
Document
Parameters:
$secondsint|float
$formatArray Optional If $format['avoid'] == 'avoidseconds' - don't mention seconds if $seconds >= 1 hour If $format['avoid'] == 'avoidminutes' - don't mention seconds/minutes if $seconds > 48 hours If $format['noabbrevs'] is true - use 'seconds' and friends instead of 'seconds-abbrev' and friends For backwards compatibility, $format may also be one of the strings 'avoidseconds' or 'avoidminutes'
Returns:
string

Definition at line 4296 of file Language.php.

Language::gender ( gender,
forms 
)

Provides an alternative text depending on specified gender.

Usage {{gender:username|masculine|feminine|neutral}}. username is optional, in which case the gender of current user is used, but only in (some) interface messages; otherwise default gender is used.

If no forms are given, an empty string is returned. If only one form is given, it will be returned unconditionally. These details are implied by the caller and cannot be overridden in subclasses.

If more than one form is given, the default is to use the neutral one if it is specified, and to use the masculine one otherwise. These details can be overridden in subclasses.

Parameters:
$genderstring
$formsarray
Returns:
string

Definition at line 3603 of file Language.php.

Returns:
array

Definition at line 2341 of file Language.php.

Language::getArrow ( direction = 'forwards')

An arrow, depending on the language direction.

Parameters:
$directionString: the direction of the arrow: forwards (default), backwards, left, right, up, down.
Returns:
string

Definition at line 2951 of file Language.php.

Exports $wgBookstoreListEn.

Returns:
array

Definition at line 498 of file Language.php.

static Language::getCaseMaps ( ) [static]
Exceptions:
MWException
Returns:
array

Definition at line 4240 of file Language.php.

static Language::getClassFileName ( code) [static]
Parameters:
$codestring
Returns:
string

Definition at line 4098 of file Language.php.

Get the RFC 3066 code for this language object.

NOTE: The return value of this function is NOT HTML-safe and must be escaped with htmlspecialchars() or similar

Returns:
string

Definition at line 4016 of file Language.php.

Referenced by LanguageHu\convertGrammar().

static Language::getCodeFromFileName ( filename,
prefix = 'Language',
suffix = '.php' 
) [static]

Get the language code from a file name.

Inverse of getFileName()

Parameters:
$filenamestring $prefix . $languageCode . $suffix
$prefixstring Prefix before the language code
$suffixstring Suffix after the language code
Returns:
string Language code, or false if $prefix or $suffix isn't found

Definition at line 4073 of file Language.php.

Get the compiled plural rules for the language.

Since:
1.20
Returns:
array Associative array with plural form, and plural rule as key-value pairs

Definition at line 4539 of file Language.php.

Return the LanguageConverter used in the Language.

Since:
1.19
Returns:
LanguageConverter

Definition at line 3765 of file Language.php.

Get the conversion rule title, if any.

Returns:
string

Definition at line 4530 of file Language.php.

Returns:
array

Definition at line 787 of file Language.php.

Language::getDateFormatString ( type,
pref 
)

Get a format string for a given type and preference.

Parameters:
$typestring May be date, time or both
$prefstring The format name as it appears in Messages*.php
Since:
1.22 New type 'pretty' that provides a more readable timestamp format
Returns:
string

Definition at line 2008 of file Language.php.

Returns:
array

Definition at line 807 of file Language.php.

Returns:
array

Definition at line 780 of file Language.php.

Returns:
array|string

Definition at line 794 of file Language.php.

Returns:
string

Definition at line 3879 of file Language.php.

Return the correct HTML 'dir' attribute value for this language.

Returns:
String

Definition at line 2873 of file Language.php.

Language::getDirMark ( opposite = false)

A hidden direction mark (LRM or RLM), depending on the language direction.

This function produces them as invisible Unicode characters and the output may be hard to read and debug, so it should only be used when the output is plain text or can be escaped. When the output is HTML, use getDirMarkEntity() instead.

Parameters:
$oppositeBoolean Get the direction mark opposite to your language
Returns:
string

Definition at line 2929 of file Language.php.

Language::getDirMarkEntity ( opposite = false)

A hidden direction mark (LRM or RLM), depending on the language direction.

Unlike getDirMark(), this function returns the character as an HTML entity. This function should be used when the output is guaranteed to be HTML, because it makes the output HTML source code more readable. When the output is plain text or can be escaped, getDirMark() should be used.

Parameters:
$oppositeBoolean Get the direction mark opposite to your language
Returns:
string
Since:
1.20

Definition at line 2912 of file Language.php.

Language::getDurationIntervals ( seconds,
array chosenIntervals = array() 
)

Takes a number of seconds and returns an array with a set of corresponding intervals.

For example 65 will be turned into array( minutes => 1, seconds => 5 ).

Since:
1.20
Parameters:
integer$secondsThe amount of seconds.
array$chosenIntervalsThe intervals to enable.
Returns:
array

Definition at line 2124 of file Language.php.

Referenced by LanguageZh_hans\formatDuration().

returns language specific options used by User::getPageRenderHash() for example, the preferred language variant

Returns:
string

Definition at line 3927 of file Language.php.

Returns:
array

Definition at line 822 of file Language.php.

static Language::getFallbackFor ( code) [static]

Get the first fallback for a given language.

Parameters:
$codestring
Returns:
bool|string

Definition at line 4110 of file Language.php.

Same as getFallbacksFor for current language.

Returns:
array|bool
Deprecated:
in 1.19

Definition at line 481 of file Language.php.

Returns:
array
Since:
1.19

Definition at line 490 of file Language.php.

static Language::getFallbacksFor ( code) [static]

Get the ordered list of fallback languages.

Since:
1.19
Parameters:
$codestring Language code
Returns:
array

Definition at line 4127 of file Language.php.

static Language::getFallbacksIncludingSiteLanguage ( code) [static]

Get the ordered list of fallback languages, ending with the fallback language chain for the site language.

Since:
1.22
Parameters:
string$codeLanguage code
Returns:
array array( fallbacks, site fallbacks )

Definition at line 4148 of file Language.php.

static Language::getFileName ( prefix = 'Language',
code,
suffix = '.php' 
) [static]

Get the name of a file for a certain language code.

Parameters:
$prefixstring Prepend this to the filename
$codestring Language code
$suffixstring Append this to the filename
Exceptions:
MWException
Returns:
string $prefix . $mangledCode . $suffix

Definition at line 4055 of file Language.php.

Referenced by MessageWriter\writeMessagesToFile().

A convenience function that returns the same thing as getNamespaces() except with the array values changed to ' ' where it found '_', useful for producing output to be displayed e.g.

in <select> forms.

Returns:
array

Definition at line 568 of file Language.php.

A convenience function that returns the same thing as getNsText() except with '_' changed to ' ', useful for producing output.

$mw_ns = $wgContLang->getFormattedNsText( NS_MEDIAWIKI_TALK ); echo $mw_ns; // prints 'MediaWiki talk'

Parameters:
int$indexThe array key of the namespace to return
Returns:
string Namespace name without underscores (empty string if namespace does not exist)

Definition at line 604 of file Language.php.

Language::getGenderNsText ( index,
gender 
)

Returns gender-dependent namespace alias if available.

Parameters:
$indexInt: namespace index
$genderString: gender key (male, female... )
Returns:
String
Since:
1.18

Definition at line 616 of file Language.php.

Get the grammar forms for the content language.

Returns:
array of grammar forms
Since:
1.20

Definition at line 3577 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1029 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1037 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1045 of file Language.php.

Get the code in Bcp47 format which we can use inside of html lang="" tags.

NOTE: The return value of this function is NOT HTML-safe and must be escaped with htmlspecialchars() or similar.

Since:
1.19
Returns:
string

Definition at line 4030 of file Language.php.

Language::getHumanTimestamp ( MWTimestamp ts,
MWTimestamp relativeTo,
User user 
)

Convert an MWTimestamp into a pretty human-readable timestamp using the given user preferences and relative base time.

DO NOT USE THIS FUNCTION DIRECTLY. Instead, call MWTimestamp::getHumanTimestamp on your timestamp object, which will then call this function. Calling this function directly will cause hooks to be skipped over.

See also:
MWTimestamp::getHumanTimestamp
Parameters:
MWTimestamp$tsTimestamp to prettify
MWTimestamp$relativeToBase timestamp
User$userUser preferences to use
Returns:
string Human timestamp
Since:
1.22

Definition at line 2270 of file Language.php.

Language::getImageFile ( image)
Parameters:
$image
Returns:
array|null

Definition at line 815 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1021 of file Language.php.

Returns:
Language

Definition at line 3976 of file Language.php.

Get the native language name of $code.

Only if defined in MediaWiki, no other data like CLDR.

Parameters:
$codestring
Returns:
string
Deprecated:
in 1.20, use fetchLanguageName()

Definition at line 951 of file Language.php.

static Language::getLanguageNames ( customisedOnly = false) [static]

Get native language names, indexed by code.

Only those defined in MediaWiki, no other data like CLDR. If $customisedOnly is true, only returns codes with a messages file

Parameters:
$customisedOnlybool
Returns:
array
Deprecated:
in 1.20, use fetchLanguageNames()

Definition at line 844 of file Language.php.

Get a namespace key by value, case insensitive.

Only matches namespace names for the current language, not the canonical ones defined in Namespace.php.

Parameters:
$textString
Returns:
mixed An integer if $text is a valid value otherwise false

Definition at line 653 of file Language.php.

Language::getMagic ( mw)

Fill a MagicWord object with data from here.

Parameters:
$mw

Definition at line 3003 of file Language.php.

Get all magic words from cache.

Returns:
array

Definition at line 2981 of file Language.php.

Parameters:
$keystring
Returns:
array|null

Reimplemented in LanguageQqx.

Definition at line 2334 of file Language.php.

static Language::getMessageFor ( key,
code 
) [static]

Get a message for a given language.

Parameters:
$keystring
$codestring
Returns:
string

Definition at line 4191 of file Language.php.

Get a message from the MediaWiki namespace.

Parameters:
$msgString: message name
Returns:
string

Definition at line 940 of file Language.php.

static Language::getMessageKeysFor ( code) [static]

Get all message keys for a given language.

This is a faster alternative to array_keys( Language::getMessagesFor( $code ) )

Since:
1.19
Parameters:
$codestring Language code
Returns:
array of message keys (strings)

Definition at line 4203 of file Language.php.

Referenced by ApiQueryAllMessages\execute().

static Language::getMessagesFileName ( code) [static]
Parameters:
$codestring
Returns:
string

Definition at line 4087 of file Language.php.

Referenced by Digit2Html\execute(), languages\loadFile(), and MessageWriter\writeMessagesToFile().

static Language::getMessagesFor ( code) [static]

Get all messages for a given language WARNING: this may take a long time.

If you just need all message *keys* but need the *contents* of only a few messages, consider using getMessageKeysFor().

Parameters:
$codestring
Returns:
array

Definition at line 4179 of file Language.php.

Referenced by AllTrans\execute(), and DumpMessages\execute().

Parameters:
$keystring
Returns:
string

Definition at line 986 of file Language.php.

Returns:
array

Definition at line 993 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 959 of file Language.php.

Referenced by LanguageWa\date().

Parameters:
$keystring
Returns:
string

Definition at line 978 of file Language.php.

Returns:
array

Definition at line 966 of file Language.php.

Returns:
array

Definition at line 662 of file Language.php.

Returns:
array

Definition at line 704 of file Language.php.

Returns an array of localised namespaces indexed by their numbers.

If the namespace is not available in localised form, it will be included in English.

Returns:
array

Definition at line 508 of file Language.php.

Language::getNsIndex ( text)

Get a namespace key by value, case insensitive.

Canonical namespace names override custom ones defined for the current language.

Parameters:
$textString
Returns:
mixed An integer if $text is a valid value otherwise false

Definition at line 734 of file Language.php.

Language::getNsText ( index)

Get a namespace value by key $mw_ns = $wgContLang->getNsText( NS_MEDIAWIKI ); echo $mw_ns; // prints 'MediaWiki'

Parameters:
$indexInt: the array key of the namespace to return
Returns:
mixed, string if the namespace value exists, otherwise false

Definition at line 586 of file Language.php.

Get the "parent" language which has a converter to convert a "compatible" language (in another variant) to this language (eg.

zh for zh-cn, but not en for en-gb).

Returns:
Language|null
Since:
1.22

Definition at line 3987 of file Language.php.

For languages that support multiple variants, the title of an article may be displayed differently in different variants.

this function returns the apporiate title defined in the body of the article.

Returns:
string

Definition at line 3938 of file Language.php.

Find the index number of the plural rule appropriate for the given number.

Returns:
int The index number of the plural rule

Definition at line 4595 of file Language.php.

Get the plural rules for the language.

Since:
1.20
Returns:
array Associative array with plural form number and plural rule as key-value pairs

Definition at line 4558 of file Language.php.

Find the plural rule type appropriate for the given number For example, if the language is set to Arabic, getPluralType(5) should return 'few'.

Since:
1.22
Returns:
string The name of the plural rule type, e.g. one, two, few, many

Definition at line 4608 of file Language.php.

Get the plural rule types for the language.

Since:
1.22
Returns:
array Associative array with plural form number and plural rule type as key-value pairs

Definition at line 4577 of file Language.php.

Returns:
string

Definition at line 3872 of file Language.php.

Referenced by LanguageKk\convertGrammar(), LanguageKk\lcfirst(), and LanguageKk\ucfirst().

Get special page names, as an associative array case folded alias => real name.

Definition at line 3043 of file Language.php.

static Language::getTranslatedLanguageNames ( code) [static]

Get translated language names.

This is done on best effort and by default this is exactly the same as Language::getLanguageNames. The CLDR extension provides translated names.

Parameters:
$codeString Language code.
Returns:
Array language code => language name
Since:
1.18.0
Deprecated:
in 1.20, use fetchLanguageNames()

Definition at line 857 of file Language.php.

Returns:
string

Definition at line 3886 of file Language.php.

Parameters:
$tog
Returns:
string

Definition at line 830 of file Language.php.

Language::getVariantname ( code,
usemsg = true 
)

short names for language variants used for language conversion links.

Parameters:
$codeString
$usemsgbool Use the "variantname-xyz" message if it exists
Returns:
string

Definition at line 751 of file Language.php.

Get the list of variants supported by this language see sample implementation in LanguageZh.php.

Returns:
array an array of language codes

Definition at line 3865 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1013 of file Language.php.

Parameters:
$keystring
Returns:
string

Definition at line 1005 of file Language.php.

Language::handleExplicitPluralForms ( count,
array forms 
) [protected]

Handles explicit plural forms for Language::convertPlural()

In {{PLURAL:$1|0=nothing|one|many}}, 0=nothing will be returned if $1 equals zero. If an explicitly defined plural form matches the $count, then string value returned, otherwise array returned for further consideration by CLDR rules or overridden convertPlural().

Since:
1.22.1
Parameters:
int$countnon-localized number
array$formsdifferent plural forms
Returns:
array|string

Definition at line 3662 of file Language.php.

Referenced by LanguageKsh\convertPlural().

Language::hasVariant ( variant)

Check if the language has the specific variant.

Since:
1.19
Parameters:
$variantstring
Returns:
bool

Definition at line 3825 of file Language.php.

Check if this is a language with variants.

Returns:
bool

Definition at line 3814 of file Language.php.

Most writing systems use whitespace to break up words.

Some languages such as Chinese don't conventionally do this, which requires special handling when breaking up words for searching etc.

Returns:
bool

Reimplemented in LanguageYue, and LanguageZh_hans.

Definition at line 2643 of file Language.php.

static Language::hebrewNumeral ( num) [static]

Hebrew Gematria number formatting up to 9999.

Parameters:
$numint
Returns:
string

Definition at line 1829 of file Language.php.

static Language::hebrewYearStart ( year) [static, private]

This calculates the Hebrew year start, as days since 1 September.

Based on Carl Friedrich Gauss algorithm for finding Easter date. Used for Hebrew date.

Parameters:
$yearint
Returns:
string

Definition at line 1682 of file Language.php.

Language::iconv ( in,
out,
string 
)
Parameters:
$in
$out
$string
Returns:
string

Reimplemented in LanguageEo.

Definition at line 2351 of file Language.php.

Hook which will be called if this is the content language.

Descendants can use this to register hook functions or modify globals

Definition at line 474 of file Language.php.

Reimplemented in LanguageEo.

Definition at line 2771 of file Language.php.

static Language::insertSpace ( string,
pattern 
) [static, protected]
Parameters:
$stringstring
$patternstring
Returns:
string

Definition at line 2697 of file Language.php.

Referenced by LanguageJa\segmentByWord(), LanguageYue\segmentByWord(), and LanguageZh_hans\segmentByWord().

Language::internalUserTimeAndDate ( type,
ts,
User user,
array options 
) [private]

Internal helper function for userDate(), userTime() and userTimeAndDate()

Parameters:
$typeString: can be 'date', 'time' or 'both'
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$userUser object used to get preferences for timezone and format
$optionsArray, can contain the following keys:
  • 'timecorrection': time correction, can have the following values:
    • true: use user's preference
    • false: don't use time correction
    • integer: value of time correction in minutes
  • 'format': format to use, can have the following values:
    • true: use user's preference
    • false: use default preference
    • string: format to use
Since:
1.19
Returns:
String

Definition at line 2166 of file Language.php.

static Language::isKnownLanguageTag ( tag) [static]

Returns true if a language code is an IETF tag known to MediaWiki.

Parameters:
$codestring
Since:
1.21
Returns:
bool

Definition at line 384 of file Language.php.

Referenced by LanguageTest\testKnownCldrLanguageTag(), LanguageTest\testKnownLanguageTag(), and LanguageTest\testUnknownLanguageTag().

Parameters:
$strstring
Returns:
bool

Definition at line 2522 of file Language.php.

For right-to-left language support.

Returns:
bool

Definition at line 2865 of file Language.php.

static Language::isSupportedLanguage ( code) [static]

Checks whether any localisation is available for that language tag in MediaWiki (MessagesXx.php exists).

Parameters:
string$codeLanguage tag (in lower case)
Returns:
bool Whether language is supported
Since:
1.21

Definition at line 262 of file Language.php.

Referenced by ApiCreateAccount\execute(), and LanguageTest\testIsSupportedLanguage().

static Language::isValidBuiltInCode ( code) [static]

Returns true if a language code is of a valid form for the purposes of internal customisation of MediaWiki, via Messages*.php.

Parameters:
$codestring
Exceptions:
MWException
Since:
1.18
Returns:
bool

Definition at line 361 of file Language.php.

Referenced by LanguageTest\testBuiltInCodeValidation(), and LanguageTest\testBuiltInCodeValidationRejectUnderscore().

static Language::isValidCode ( code) [static]

Returns true if a language code string is of a valid form, whether or not it exists.

This includes codes which are used solely for customisation via the MediaWiki namespace.

Parameters:
$codestring
Returns:
bool

Definition at line 335 of file Language.php.

Referenced by ApiQueryAllMessages\execute(), and RequestContext\sanitizeLangCode().

static Language::isWellFormedLanguageTag ( code,
lenient = false 
) [static]

Returns true if a language code string is a well-formed language tag according to RFC 5646.

This function only checks well-formedness; it doesn't check that language, script or variant codes actually exist in the repositories.

Based on regexes by Mark Davis of the Unicode Consortium: http://unicode.org/repos/cldr/trunk/tools/java/org/unicode/cldr/util/data/langtagRegex.txt

Parameters:
$codestring
$lenientboolean Whether to allow '_' as separator. The default is only '-'.
Returns:
bool
Since:
1.21

Definition at line 281 of file Language.php.

Referenced by LanguageTest\testLenientLanguageTag(), LanguageTest\testMalformedLanguageTag(), and LanguageTest\testWellFormedLanguageTag().

Language::lc ( str,
first = false 
)
Parameters:
$strstring
$firstbool
Returns:
mixed|string

Definition at line 2493 of file Language.php.

Language::lcCallback ( matches)
Parameters:
$matchesarray
Returns:
string

Definition at line 2396 of file Language.php.

Language::lcfirst ( str)
Parameters:
$strstring
Returns:
mixed|string

Reimplemented in LanguageKk, LanguageKaa, and LanguageTr.

Definition at line 2474 of file Language.php.

To allow "foo[[bar]]" to extend the link over the whole word "foobar".

Returns:
bool

Definition at line 2973 of file Language.php.

A regular expression to match legal word-trailing characters which should be merged onto a link of the form [[foo]]bar.

Returns:
string

Definition at line 3969 of file Language.php.

Take a list of strings and build a locale-friendly comma-separated list, using the local comma-separator message.

The last two strings are chained with an "and". NOTE: This function will only work with standard numeric array keys (0, 1, 2…)

Parameters:
$lArray
Returns:
string

Definition at line 3226 of file Language.php.

Language::markNoConversion ( text,
noParse = false 
)

Prepare external link text for conversion.

When the text is a URL, it shouldn't be converted, and it'll be wrapped in the "raw" tag (-{R| }-) to prevent conversion.

This function is called "markNoConversion" for historical reasons.

Parameters:
$textString: text to be used for external link
$noParsebool: wrap it without confirming it's a real URL first
Returns:
string the tagged text

Definition at line 3954 of file Language.php.

Whether this language makes distinguishes genders for example in namespaces.

Returns:
bool
Since:
1.18

Definition at line 629 of file Language.php.

static Language::newFromCode ( code) [static, protected]

Create a language object for a given language code.

Parameters:
$codeString
Exceptions:
MWException
Returns:
Language

Definition at line 211 of file Language.php.

Convert a UTF-8 string to normal form C.

In Malayalam and Arabic, this also cleans up certain backwards-compatible sequences, converting them to the modern Unicode equivalent.

This is language-specific for performance reasons only.

Parameters:
$sstring
Returns:
string

Reimplemented in LanguageMl, and LanguageAr.

Definition at line 2824 of file Language.php.

Some languages have special punctuation need to be normalized.

Make such changes here.

Parameters:
$stringString
Returns:
String

Reimplemented in LanguageZh_hans, LanguageYue, and LanguageBe_tarask.

Definition at line 2665 of file Language.php.

Language::numLink ( Title title,
offset,
limit,
array query,
link,
tooltipMsg,
class 
) [private]

Helper function for viewPrevNext() that generates links.

Parameters:
$titleTitle object to link
$offsetInteger offset parameter
$limitInteger limit parameter
$queryArray extra query parameters
$linkString text to use for the link; will be escaped
$tooltipMsgString name of the message to use as tooltip
$classString value of the "class" attribute of the link
Returns:
String HTML fragment

Definition at line 4518 of file Language.php.

Parameters:
$numberstring
Returns:
string

Definition at line 3126 of file Language.php.

Same as commaList, but separate it with the pipe instead.

Parameters:
$listarray of strings to put in a pipe list
Returns:
string

Definition at line 3280 of file Language.php.

Language::preConvertPlural ( forms,
count 
) [protected]

Checks that convertPlural was given an array and pads it to requested amount of forms by copying the last one.

Parameters:
$countInteger: How many forms should there be at least
$formsArray of forms given to convertPlural
Returns:
array Padded array of forms or an exception if not an array

Definition at line 3683 of file Language.php.

Referenced by LanguageKsh\convertPlural().

static Language::preloadLanguageClass ( class) [static]

Includes language class files.

Parameters:
$classstring Name of the language class

Definition at line 424 of file Language.php.

Parameters:
$sstring
Returns:
string

Definition at line 2782 of file Language.php.

Parameters:
$sstring
Returns:
string

Definition at line 2798 of file Language.php.

Language::removeBadCharFirst ( string) [protected]

Remove bytes that represent an incomplete Unicode character at the start of string (e.g.

bytes of the char are missing)

Parameters:
$stringString
Returns:
string

Definition at line 3376 of file Language.php.

Language::removeBadCharLast ( string) [protected]

Remove bytes that represent an incomplete Unicode character at the end of string (e.g.

bytes of the char are missing)

Parameters:
$stringString
Returns:
string

Definition at line 3351 of file Language.php.

Parameters:
$mstring
Returns:
string

Definition at line 4232 of file Language.php.

Resets all of the namespace caches.

Mainly used for testing

Definition at line 554 of file Language.php.

static Language::romanNumeral ( num) [static]

Roman number formatting up to 10000.

Parameters:
$numint
Returns:
string

Definition at line 1799 of file Language.php.

Referenced by LanguageTest\testRomanNumerals().

Language::segmentByWord ( string)

Some languages such as Chinese require word segmentation, Specify such segmentation when overridden in derived class.

Parameters:
$stringString
Returns:
String

Reimplemented in LanguageZh_hans, LanguageYue, and LanguageJa.

Definition at line 2654 of file Language.php.

languages like Chinese need to be segmented in order for the diff to be of any use

Parameters:
$textString
Returns:
String

Reimplemented in LanguageZh.

Definition at line 3745 of file Language.php.

Take a list of strings and build a locale-friendly semicolon-separated list, using the local semicolon-separator message.

Parameters:
$listarray of strings to put in a semicolon list
Returns:
string

Definition at line 3268 of file Language.php.

Returns:
array

Definition at line 3213 of file Language.php.

Language::setCode ( code)
Parameters:
$codestring

Definition at line 4040 of file Language.php.

Language::setNamespaces ( array namespaces)

Arbitrarily set all of the namespace names at once.

Mainly used for testing

Parameters:
$namespacesArray of namespaces (id => name)

Definition at line 546 of file Language.php.

Language::specialList ( page,
details,
oppositedm = true 
)

Make a list item, used by various special pages.

Parameters:
$pageString Page link
$detailsString Text between brackets
$oppositedmBoolean Add the direction mark opposite to your language, to display text properly
Returns:
String

Definition at line 4456 of file Language.php.

Language::specialPage ( name)
Parameters:
$namestring
Returns:
string

Definition at line 769 of file Language.php.

Language::sprintfDate ( format,
ts,
DateTimeZone $  zone = null 
)

This is a workalike of PHP's date() function, but with better internationalisation, a reduced set of format characters, and a better escaping format.

Supported format characters are dDjlNwzWFmMntLoYyaAgGhHiscrUeIOPTZ. See the PHP manual for definitions. There are a number of extensions, which start with "x":

xn Do not translate digits of the next numeric format character xN Toggle raw digit (xn) flag, stays set until explicitly unset xr Use roman numerals for the next numeric format character xh Use hebrew numerals for the next numeric format character xx Literal x xg Genitive month name

xij j (day number) in Iranian calendar xiF F (month name) in Iranian calendar xin n (month number) in Iranian calendar xiy y (two digit year) in Iranian calendar xiY Y (full year) in Iranian calendar

xjj j (day number) in Hebrew calendar xjF F (month name) in Hebrew calendar xjt t (days in month) in Hebrew calendar xjx xg (genitive month name) in Hebrew calendar xjn n (month number) in Hebrew calendar xjY Y (full year) in Hebrew calendar

xmj j (day number) in Hijri calendar xmF F (month name) in Hijri calendar xmn n (month number) in Hijri calendar xmY Y (full year) in Hijri calendar

xkY Y (full year) in Thai solar calendar. Months and days are identical to the Gregorian calendar xoY Y (full year) in Minguo calendar or Juche year. Months and days are identical to the Gregorian calendar xtY Y (full year) in Japanese nengo. Months and days are identical to the Gregorian calendar

Characters enclosed in double quotes will be considered literal (with the quotes themselves removed). Unmatched quotes will be considered literal quotes. Example:

"The month is" F => The month is January i's" => 20'11"

Backslash escaping is also supported.

Input timestamp is assumed to be pre-normalized to the desired local time zone, if any. Note that the format characters crUeIOPTZ will assume $ts is UTC if $zone is not given.

Parameters:
$formatString
$tsString: 14-character timestamp YYYYMMDDHHMMSS 01234567890123
$zoneDateTimeZone: Timezone of $ts
Todo:
handling of "o" format character for Iranian, Hebrew, Hijri & Thai?
Exceptions:
MWException
Returns:
string

Definition at line 1114 of file Language.php.

Language::time ( ts,
adj = false,
format = true,
timecorrection = false 
)
Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$adjBool: whether to adjust the time output according to the user configured offset ($timecorrection)
$formatMixed: true to use user's date format preference
$timecorrectionString|bool the time offset as returned by validateTimeZone() in Special:Preferences
Returns:
string

Definition at line 2059 of file Language.php.

Referenced by LanguageWa\timeanddate().

Language::timeanddate ( ts,
adj = false,
format = true,
timecorrection = false 
)
Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$adjBool: whether to adjust the time output according to the user configured offset ($timecorrection)
$formatMixed: what format to return, if it's false output the default one (default true)
$timecorrectionString|bool the time offset as returned by validateTimeZone() in Special:Preferences
Returns:
string

Reimplemented in LanguageWa.

Definition at line 2079 of file Language.php.

Language::transformUsingPairFile ( file,
string 
)

Transform a string using serialized data stored in the given file (which must be in the serialized subdirectory of $IP).

The file contains pairs mapping source characters to destination characters.

The data is cached in process memory. This will go faster if you have the FastStringSearch extension.

Parameters:
$filestring
$stringstring
Exceptions:
MWException
Returns:
string

Definition at line 2849 of file Language.php.

Referenced by LanguageAr\normalize(), and LanguageMl\normalize().

Todo:
Maybe translate block durations.

Note that this function is somewhat misnamed: it deals with translating the *duration* ("1 week", "4 days", etc), not the expiry time (which is an absolute timestamp). Please note: do NOT add this blindly, as it is used on old expiry lengths recorded in log entries. You'd need to provide the start date to match up with it.

Parameters:
$strString: the validated block duration in English
Returns:
string Somehow translated block duration
See also:
LanguageFi.php for example implementation

Definition at line 3701 of file Language.php.

Language::truncate ( string,
length,
ellipsis = '...',
adjustLength = true 
)

Truncate a string to a specified length in bytes, appending an optional string (e.g.

for ellipses)

The database offers limited byte lengths for some columns in the database; multi-byte character sets mean we need to ensure that only whole characters are included, otherwise broken characters can be passed to the user

If $length is negative, the string will be truncated from the beginning

Parameters:
$stringString to truncate
$lengthInt: maximum length (including ellipses)
$ellipsisString to append to the truncated text
$adjustLengthBoolean: Subtract length of ellipsis from $length. $adjustLength was introduced in 1.18, before that behaved as if false.
Returns:
string

Definition at line 3304 of file Language.php.

Language::truncate_endBracket ( &$  tag,
tagType,
lastCh,
&$  openTags 
) [private]

truncateHtml() helper function (a) push or pop $tag from $openTags as needed (b) clear $tag value

Parameters:
&$tagstring Current HTML tag name we are looking at
$tagTypeint (0-open tag, 1-close tag)
$lastChstring Character before the '>' that ended this tag
&$openTagsarray Open tag stack (not accounting for $tag)

Definition at line 3543 of file Language.php.

Language::truncate_skip ( &$  ret,
text,
search,
start,
len = null 
) [private]

truncateHtml() helper function like strcspn() but adds the skipped chars to $ret

Parameters:
$ret
$text
$search
$start
$len
Returns:
int

Definition at line 3520 of file Language.php.

Language::truncateHtml ( text,
length,
ellipsis = '...' 
)

Truncate a string of valid HTML to a specified length in bytes, appending an optional string (e.g.

for ellipses), and return valid HTML

This is only intended for styled/linked text, such as HTML with tags like and , were the tags are self-contained (valid HTML). Also, this will not detect things like "display:none" CSS.

Note: since 1.18 you do not need to leave extra room in $length for ellipses.

Parameters:
string$textHTML string to truncate
int$length(zero/positive) Maximum length (including ellipses)
string$ellipsisString to append to the truncated text
Returns:
string

Definition at line 3402 of file Language.php.

static Language::tsToHebrew ( ts) [static, private]

Converting Gregorian dates to Hebrew dates.

Based on a JavaScript code by Abu Mami and Yisrael Hersch ([email protected], http://www.kaluach.net), who permitted to translate the relevant functions into PHP and release them under GNU GPL.

The months are counted from Tishrei = 1. In a leap year, Adar I is 13 and Adar II is 14. In a non-leap year, Adar is 6.

Parameters:
$tsstring
Returns:
string

Definition at line 1541 of file Language.php.

static Language::tsToHijri ( ts) [static, private]

Converting Gregorian dates to Hijri dates.

Based on a PHP-Nuke block by Sharjeel which is released under GNU/GPL license

See also:
http://phpnuke.org/modules.php?name=News&file=article&sid=8234&mode=thread&order=0&thold=0
Parameters:
$tsstring
Returns:
string

Definition at line 1490 of file Language.php.

static Language::tsToIranian ( ts) [static, private]

Algorithm by Roozbeh Pournader and Mohammad Toossi to convert Gregorian dates to Iranian dates.

Originally written in C, it is released under the terms of GNU Lesser General Public License. Conversion to PHP was performed by Niklas Laxström.

Link: http://www.farsiweb.info/jalali/jalali.c

Parameters:
$tsstring
Returns:
string

Definition at line 1432 of file Language.php.

static Language::tsToYear ( ts,
cName 
) [static, private]

Algorithm to convert Gregorian dates to Thai solar dates, Minguo dates or Minguo dates.

Link: http://en.wikipedia.org/wiki/Thai_solar_calendar http://en.wikipedia.org/wiki/Minguo_calendar http://en.wikipedia.org/wiki/Japanese_era_name

Parameters:
$tsString: 14-character timestamp
$cNameString: calender name
Returns:
Array: converted year, month, day

Definition at line 1720 of file Language.php.

Language::uc ( str,
first = false 
)

Convert a string to uppercase.

Parameters:
$strstring
$firstbool
Returns:
string

Definition at line 2445 of file Language.php.

Language::ucCallback ( matches)
Parameters:
$matchesarray
Returns:
string

Definition at line 2387 of file Language.php.

Language::ucfirst ( str)

Make a string's first character uppercase.

Parameters:
$strstring
Returns:
string

Reimplemented in LanguageKk, LanguageKaa, LanguageTr, and LanguageAz.

Definition at line 2425 of file Language.php.

capitalize words at word breaks

Parameters:
$strstring
Returns:
mixed

Definition at line 2562 of file Language.php.

Parameters:
$matchesarray
Returns:
mixed|string

Definition at line 2371 of file Language.php.

Parameters:
$matchesarray
Returns:
string

Definition at line 2379 of file Language.php.

Language::ucwords ( str)
Parameters:
$strstring
Returns:
mixed|string

Definition at line 2530 of file Language.php.

Parameters:
$matchesarray
Returns:
string

Definition at line 2405 of file Language.php.

Parameters:
$matchesarray
Returns:
string

Definition at line 2413 of file Language.php.

and unsegment to show the result

Parameters:
$textString
Returns:
String

Reimplemented in LanguageZh.

Definition at line 3755 of file Language.php.

Language::userAdjust ( ts,
tz = false 
)

Used by date() and time() to adjust the time output.

Parameters:
$tsInt the time in date('YmdHis') format
$tzMixed: adjust the time by this amount (default false, mean we get user timecorrection setting)
Returns:
int

Definition at line 1893 of file Language.php.

Referenced by LanguageWa\date(), and LanguageWa\timeanddate().

Language::userDate ( ts,
User user,
array options = array() 
)

Get the formatted date for the given timestamp and formatted for the given user.

Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$userUser object used to get preferences for timezone and format
$optionsArray, can contain the following keys:
  • 'timecorrection': time correction, can have the following values:
    • true: use user's preference
    • false: don't use time correction
    • integer: value of time correction in minutes
  • 'format': format to use, can have the following values:
    • true: use user's preference
    • false: use default preference
    • string: format to use
Since:
1.19
Returns:
String

Definition at line 2205 of file Language.php.

Language::userTime ( ts,
User user,
array options = array() 
)

Get the formatted time for the given timestamp and formatted for the given user.

Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$userUser object used to get preferences for timezone and format
$optionsArray, can contain the following keys:
  • 'timecorrection': time correction, can have the following values:
    • true: use user's preference
    • false: don't use time correction
    • integer: value of time correction in minutes
  • 'format': format to use, can have the following values:
    • true: use user's preference
    • false: use default preference
    • string: format to use
Since:
1.19
Returns:
String

Definition at line 2228 of file Language.php.

Language::userTimeAndDate ( ts,
User user,
array options = array() 
)

Get the formatted date and time for the given timestamp and formatted for the given user.

Parameters:
$tsMixed: the time format which needs to be turned into a date('YmdHis') format with wfTimestamp(TS_MW,$ts)
$userUser object used to get preferences for timezone and format
$optionsArray, can contain the following keys:
  • 'timecorrection': time correction, can have the following values:
    • true: use user's preference
    • false: don't use time correction
    • integer: value of time correction in minutes
  • 'format': format to use, can have the following values:
    • true: use user's preference
    • false: use default preference
    • string: format to use
Since:
1.19
Returns:
String

Definition at line 2251 of file Language.php.

Language::viewPrevNext ( Title title,
offset,
limit,
array query = array(),
atend = false 
)

Generate (prev x| next x) (20|50|100...) type links for paging.

Parameters:
$titleTitle object to link
$offsetInteger offset parameter
$limitInteger limit parameter
$queryarray|String optional URL query parameter string
$atendBool optional param for specified if this is the last page
Returns:
String

Definition at line 4474 of file Language.php.


Member Data Documentation

Language::$dataCache [static]

Definition at line 98 of file Language.php.

Language::$dateFormatStrings = array()

Definition at line 85 of file Language.php.

Language::$durationIntervals [static]
Initial value:
 array(
        'millennia' => 31556952000,
        'centuries' => 3155695200,
        'decades' => 315569520,
        'years' => 31556952, 
        'weeks' => 604800,
        'days' => 86400,
        'hours' => 3600,
        'minutes' => 60,
        'seconds' => 1,
    )

Definition at line 160 of file Language.php.

Language::$fallbackLanguageCache = array() [static, private]

Definition at line 178 of file Language.php.

Language::$GREG_DAYS = array( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ) [static, private]

Definition at line 1417 of file Language.php.

Language::$IRANIAN_DAYS = array( 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 ) [static, private]

Definition at line 1418 of file Language.php.

Language::$mCode

Definition at line 81 of file Language.php.

LanguageConverter Language::$mConverter

Definition at line 79 of file Language.php.

Language::$mExtendedSpecialPageAliases

Definition at line 86 of file Language.php.

Language::$mHebrewCalendarMonthGenMsgs [static]
Initial value:
 array(
        'hebrew-calendar-m1-gen', 'hebrew-calendar-m2-gen', 'hebrew-calendar-m3-gen',
        'hebrew-calendar-m4-gen', 'hebrew-calendar-m5-gen', 'hebrew-calendar-m6-gen',
        'hebrew-calendar-m7-gen', 'hebrew-calendar-m8-gen', 'hebrew-calendar-m9-gen',
        'hebrew-calendar-m10-gen', 'hebrew-calendar-m11-gen', 'hebrew-calendar-m12-gen',
        'hebrew-calendar-m6a-gen', 'hebrew-calendar-m6b-gen'
    )

Definition at line 141 of file Language.php.

Language::$mHebrewCalendarMonthMsgs [static]
Initial value:
 array(
        'hebrew-calendar-m1', 'hebrew-calendar-m2', 'hebrew-calendar-m3',
        'hebrew-calendar-m4', 'hebrew-calendar-m5', 'hebrew-calendar-m6',
        'hebrew-calendar-m7', 'hebrew-calendar-m8', 'hebrew-calendar-m9',
        'hebrew-calendar-m10', 'hebrew-calendar-m11', 'hebrew-calendar-m12',
        'hebrew-calendar-m6a', 'hebrew-calendar-m6b'
    )

Definition at line 133 of file Language.php.

Language::$mHijriCalendarMonthMsgs [static]
Initial value:
 array(
        'hijri-calendar-m1', 'hijri-calendar-m2', 'hijri-calendar-m3',
        'hijri-calendar-m4', 'hijri-calendar-m5', 'hijri-calendar-m6',
        'hijri-calendar-m7', 'hijri-calendar-m8', 'hijri-calendar-m9',
        'hijri-calendar-m10', 'hijri-calendar-m11', 'hijri-calendar-m12'
    )

Definition at line 149 of file Language.php.

Language::$mHtmlCode = null [private]

Definition at line 83 of file Language.php.

Language::$mIranianCalendarMonthMsgs [static]
Initial value:
 array(
        'iranian-calendar-m1', 'iranian-calendar-m2', 'iranian-calendar-m3',
        'iranian-calendar-m4', 'iranian-calendar-m5', 'iranian-calendar-m6',
        'iranian-calendar-m7', 'iranian-calendar-m8', 'iranian-calendar-m9',
        'iranian-calendar-m10', 'iranian-calendar-m11', 'iranian-calendar-m12'
    )

Definition at line 126 of file Language.php.

Language::$mLangObjCache = array() [static]

Definition at line 100 of file Language.php.

Language::$mLoaded = false

Definition at line 81 of file Language.php.

Language::$mMagicExtensions = array()

Definition at line 82 of file Language.php.

Language::$mMagicHookDone = false

Definition at line 82 of file Language.php.

Language::$mMonthAbbrevMsgs [static]
Initial value:
 array(
        'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug',
        'sep', 'oct', 'nov', 'dec'
    )

Definition at line 121 of file Language.php.

Language::$mMonthGenMsgs [static]
Initial value:
 array(
        'january-gen', 'february-gen', 'march-gen', 'april-gen', 'may-gen', 'june-gen',
        'july-gen', 'august-gen', 'september-gen', 'october-gen', 'november-gen',
        'december-gen'
    )

Definition at line 116 of file Language.php.

Language::$mMonthMsgs [static]
Initial value:
 array(
        'january', 'february', 'march', 'april', 'may_long', 'june',
        'july', 'august', 'september', 'october', 'november',
        'december'
    )

Definition at line 111 of file Language.php.

Language::$mNamespaceIds

Definition at line 88 of file Language.php.

Language::$mParentLanguage = false

Definition at line 83 of file Language.php.

Language::$mVariants

Definition at line 81 of file Language.php.

Language::$mWeekdayAbbrevMsgs [static]
Initial value:
 array(
        'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'
    )

Definition at line 107 of file Language.php.

Language::$mWeekdayMsgs [static]
Initial value:
 array(
        'sunday', 'monday', 'tuesday', 'wednesday', 'thursday',
        'friday', 'saturday'
    )

Definition at line 102 of file Language.php.

Language::$namespaceAliases

Definition at line 88 of file Language.php.

Language::$namespaceNames [protected]

Definition at line 88 of file Language.php.

Language::$transformData = array()

ReplacementArray object caches.

Definition at line 93 of file Language.php.


The documentation for this class was generated from the following file: