MediaWiki
master
|
Methods for dealing with language codes. More...
Static Public Member Functions | |
static | bcp47 ( $code) |
Get the normalised IANA language tag See unit test for examples. More... | |
static | bcp47ToInternal (string $code) |
Convert standardized BCP 47 codes to the internal names used by MediaWiki and returned by Language::getCode(). More... | |
static | getDeprecatedCodeMapping () |
Returns a mapping of deprecated language codes that were used in previous versions of MediaWiki to up-to-date, current language codes. More... | |
static | getNonstandardLanguageCodeMapping () |
Returns a mapping of non-standard language codes used by (current and previous version of) MediaWiki, mapped to standard BCP 47 names. More... | |
static | isWellFormedLanguageTag (string $code, bool $lenient=false) |
Returns true if a language code string is a well-formed language tag according to RFC 5646. More... | |
static | normalizeNonstandardCodeAndWarn (string $code) |
We want to eventually require valid BCP-47 codes on HTTP and HTML APIs (where the standards require it). More... | |
static | replaceDeprecatedCodes ( $code) |
Replace deprecated language codes that were used in previous versions of MediaWiki to up-to-date, current language codes. More... | |
|
static |
Get the normalised IANA language tag See unit test for examples.
See mediawiki.language.bcp47 for the JavaScript implementation.
string | $code | The language code. |
Definition at line 188 of file LanguageCode.php.
References replaceDeprecatedCodes().
Referenced by ApiQuerySiteinfo\appendInterwikiMap(), ApiQuerySiteinfo\appendLanguages(), ApiQueryLanguageinfo\execute(), MediaWiki\Rest\ResponseFactory\formatMessage(), Language\getHtmlCode(), MediaWiki\Feed\FeedItem\getLanguage(), Skin\getLanguages(), getNonstandardLanguageCodeMapping(), LanguageConverter\getVarSeparatorPattern(), CoreTagHooks\langconvert(), CoreParserFunctions\language(), MediaWiki\Preferences\DefaultPreferencesFactory\profilePreferences(), and LanguageConverter\validateVariant().
|
static |
Convert standardized BCP 47 codes to the internal names used by MediaWiki and returned by Language::getCode().
This function should be the inverse of LanguageCode::bcp47(). Note that BCP 47 explicitly states that language codes are case insensitive.
Since LanguageFactory::getLanguage() is pretty generous about accepting aliases (as long as they are lowercased), this function should be equivalent to: LanguageFactory::getLanguage(strtolower($code))->getCode() but (a) better describes the caller's intention, and (b) should be much more efficient in practice.
string | $code | The standard BCP-47 language code |
Definition at line 232 of file LanguageCode.php.
Referenced by MediaWiki\Languages\LanguageNameUtils\getLanguageName(), MediaWiki\Languages\LanguageNameUtils\getLanguageNames(), and MediaWiki\Languages\LanguageFactory\getParentLanguage().
|
static |
Returns a mapping of deprecated language codes that were used in previous versions of MediaWiki to up-to-date, current language codes.
This array is merged into $wgDummyLanguageCodes in Setup.php, along with the fake language codes 'qqq' and 'qqx', which are used internally by MediaWiki's localisation system.
Definition at line 134 of file LanguageCode.php.
Referenced by LanguageConverter\getVarSeparatorPattern().
|
static |
Returns a mapping of non-standard language codes used by (current and previous version of) MediaWiki, mapped to standard BCP 47 names.
This array is exported to JavaScript to ensure mediawiki.language.bcp47 stays in sync with LanguageCode::bcp47().
Definition at line 150 of file LanguageCode.php.
References bcp47().
Referenced by Language\getJsData().
|
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: https://github.com/unicode-org/icu/blob/37e295627156bc334e1f1e88807025fac984da0e/icu4j/main/tests/translit/src/com/ibm/icu/dev/test/translit/langtagRegex.txt
string | $code | |
bool | $lenient | Whether to allow '_' as separator. The default is only '-'. |
Definition at line 304 of file LanguageCode.php.
Referenced by Language\isWellFormedLanguageTag(), SvgHandler\parseParamString(), and SvgHandler\validateParam().
|
static |
We want to eventually require valid BCP-47 codes on HTTP and HTML APIs (where the standards require it).
This will "prefer" to interpret the given $code as BCP-47, but if a mediawiki internal code is provided, it will map it to the proper BCP-47 code. We don't emit a logged warning on this path yet, but we intend to in the future.
string | $code | A "language code" provided from an HTTP or HTML API, presumed to be BCP-47 |
Definition at line 277 of file LanguageCode.php.
Referenced by MediaWiki\Rest\Handler\Helper\HtmlInputTransformHelper\init(), and MediaWiki\Rest\Handler\Helper\HtmlOutputRendererHelper\setVariantConversionLanguage().
|
static |
Replace deprecated language codes that were used in previous versions of MediaWiki to up-to-date, current language codes.
Other values will returned unchanged.
string | $code | Old language code |
Definition at line 174 of file LanguageCode.php.
Referenced by ApiQuerySiteinfo\appendInterwikiMap(), bcp47(), MediaWiki\Languages\LanguageNameUtils\getLanguageName(), MediaWiki\Languages\LanguageNameUtils\getLanguageNames(), and LanguageConverter\validateVariant().