mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Scribunto
synced 2024-09-23 10:22:54 +00:00
mw.language: add :toBcp47Code() method
This allows conversion of MediaWiki-internal codes to standardized codes suitable for inclusion in HTML. Change-Id: I5d2102ca57cc6861b8ec144a90f9c17b630f38ce
This commit is contained in:
parent
e30641e439
commit
9694e8f543
|
@ -6,6 +6,7 @@ use DateTime;
|
|||
use DateTimeZone;
|
||||
use Exception;
|
||||
use Language;
|
||||
use LanguageCode;
|
||||
use MediaWiki\Languages\LanguageNameUtils;
|
||||
use MediaWiki\MediaWikiServices;
|
||||
use MediaWiki\Title\Title;
|
||||
|
@ -36,6 +37,7 @@ class LanguageLibrary extends LibraryBase {
|
|||
'fetchLanguageName',
|
||||
'fetchLanguageNames',
|
||||
'getFallbacksFor',
|
||||
'toBcp47Code',
|
||||
];
|
||||
$methods = [
|
||||
'lcfirst',
|
||||
|
@ -163,6 +165,18 @@ class LanguageLibrary extends LibraryBase {
|
|||
return [ $ret ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for toBcp47Code
|
||||
* @internal
|
||||
* @param string $code a MediaWiki-internal code
|
||||
* @return string[] a BCP-47 language tag
|
||||
*/
|
||||
public function toBcp47Code( $code ) {
|
||||
$this->checkType( 'toBcp47Code', 1, $code, 'string' );
|
||||
$ret = LanguageCode::bcp47( $code );
|
||||
return [ $ret ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Language object method handler
|
||||
* @internal
|
||||
|
|
|
@ -69,6 +69,7 @@ function language.new( code )
|
|||
local checkSelf = util.makeCheckSelfFunction( 'mw.language', 'lang', lang, 'language object' )
|
||||
|
||||
local wrappers = {
|
||||
toBcp47Code = 0,
|
||||
lcfirst = 1,
|
||||
ucfirst = 1,
|
||||
lc = 1,
|
||||
|
|
|
@ -169,6 +169,26 @@ return testframework.getTestProvider( {
|
|||
}
|
||||
},
|
||||
|
||||
{ name = 'lang:toBcp47Code (sr-ec)', func = test_method_lang,
|
||||
args = { 'sr-ec', 'toBcp47Code' },
|
||||
expect = { 'sr-Cyrl' },
|
||||
},
|
||||
|
||||
{ name = 'lang:toBcp47Code (sr-el)', func = test_method_lang,
|
||||
args = { 'sr-el', 'toBcp47Code' },
|
||||
expect = { 'sr-Latn' },
|
||||
},
|
||||
|
||||
{ name = 'lang:toBcp47Code (en)', func = test_method_lang,
|
||||
args = { 'en', 'toBcp47Code' },
|
||||
expect = { 'en' },
|
||||
},
|
||||
|
||||
{ name = 'lang:toBcp47Code (simple)', func = test_method_lang,
|
||||
args = { 'simple', 'toBcp47Code' },
|
||||
expect = { 'en-simple' },
|
||||
},
|
||||
|
||||
{ name = 'lang:getFallbackLanguages', func = test_method,
|
||||
args = { 'getFallbackLanguages' },
|
||||
expect = {
|
||||
|
|
Loading…
Reference in a new issue