aboutsummaryrefslogtreecommitdiffstats
path: root/includes
diff options
context:
space:
mode:
Diffstat (limited to 'includes')
-rw-r--r--includes/GlobalFunctions.php9
-rw-r--r--includes/ServiceWiring.php7
-rw-r--r--includes/Xml.php4
-rw-r--r--includes/actions/InfoAction.php2
-rw-r--r--includes/api/ApiParse.php5
-rw-r--r--includes/api/ApiQueryAllMessages.php10
-rw-r--r--includes/api/ApiQueryLangLinks.php6
-rw-r--r--includes/api/ApiQueryLanguageinfo.php16
-rw-r--r--includes/api/ApiQuerySiteinfo.php11
-rw-r--r--includes/api/ApiSetPageLanguage.php6
-rw-r--r--includes/cache/MessageCache.php20
-rw-r--r--includes/content/WikitextContentHandler.php11
-rw-r--r--includes/context/RequestContext.php6
-rw-r--r--includes/htmlform/fields/HTMLSelectLanguageField.php6
-rw-r--r--includes/installer/WebInstaller.php4
-rw-r--r--includes/installer/WebInstallerLanguage.php10
-rw-r--r--includes/logging/PageLangLogFormatter.php7
-rw-r--r--includes/media/FormatMetadata.php14
-rw-r--r--includes/media/SvgHandler.php6
-rw-r--r--includes/page/ImagePage.php4
-rw-r--r--includes/parser/CoreParserFunctions.php4
-rw-r--r--includes/parser/Parser.php10
-rw-r--r--includes/preferences/DefaultPreferencesFactory.php12
-rw-r--r--includes/site/Site.php8
-rw-r--r--includes/skins/SkinTemplate.php6
-rw-r--r--includes/specials/SpecialMyLanguage.php5
-rw-r--r--includes/specials/SpecialPageLanguage.php4
-rw-r--r--includes/specials/pagers/AllMessagesTablePager.php4
28 files changed, 157 insertions, 60 deletions
diff --git a/includes/GlobalFunctions.php b/includes/GlobalFunctions.php
index 561a99e4b165..629e44ef5fb2 100644
--- a/includes/GlobalFunctions.php
+++ b/includes/GlobalFunctions.php
@@ -1220,10 +1220,11 @@ function wfGetLangObj( $langcode = false ) {
}
global $wgLanguageCode;
+ $services = MediaWikiServices::getInstance();
if ( $langcode === true || $langcode === $wgLanguageCode ) {
# $langcode is the language code of the wikis content language object.
# or it is a boolean and value is true
- return MediaWikiServices::getInstance()->getContentLanguage();
+ return $services->getContentLanguage();
}
global $wgLang;
@@ -1233,15 +1234,15 @@ function wfGetLangObj( $langcode = false ) {
return $wgLang;
}
- $validCodes = array_keys( Language::fetchLanguageNames() );
+ $validCodes = array_keys( $services->getLanguageNameUtils()->getLanguageNames() );
if ( in_array( $langcode, $validCodes ) ) {
# $langcode corresponds to a valid language.
- return MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( $langcode );
+ return $services->getLanguageFactory()->getLanguage( $langcode );
}
# $langcode is a string, but not a valid language code; use content language.
wfDebug( "Invalid language code passed to wfGetLangObj, falling back to content language.\n" );
- return MediaWikiServices::getInstance()->getContentLanguage();
+ return $services->getContentLanguage();
}
/**
diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php
index 86a763c08df4..e140f41fee7f 100644
--- a/includes/ServiceWiring.php
+++ b/includes/ServiceWiring.php
@@ -534,7 +534,9 @@ return [
$logger,
[ 'useDB' => $mainConfig->get( 'UseDatabaseMessages' ) ],
$services->getLanguageFactory(),
- $services->getLocalisationCache()
+ $services->getLocalisationCache(),
+ $services->getLanguageNameUtils(),
+ $services->getLanguageFallback()
);
},
@@ -740,7 +742,8 @@ return [
$services->getLinkRendererFactory()->create(),
$services->getNamespaceInfo(),
$services->getPermissionManager(),
- $services->getLanguageConverterFactory()->getLanguageConverter()
+ $services->getLanguageConverterFactory()->getLanguageConverter(),
+ $services->getLanguageNameUtils()
);
$factory->setLogger( LoggerFactory::getInstance( 'preferences' ) );
diff --git a/includes/Xml.php b/includes/Xml.php
index e678800054ce..9f37c58bb798 100644
--- a/includes/Xml.php
+++ b/includes/Xml.php
@@ -207,7 +207,9 @@ class Xml {
global $wgLanguageCode;
$include = $customisedOnly ? 'mwfile' : 'mw';
- $languages = Language::fetchLanguageNames( $inLanguage, $include );
+ $languages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( $inLanguage, $include );
// Make sure the site language is in the list;
// a custom language code might not have a defined name...
diff --git a/includes/actions/InfoAction.php b/includes/actions/InfoAction.php
index 7e97d7faf15c..acb38c2dd159 100644
--- a/includes/actions/InfoAction.php
+++ b/includes/actions/InfoAction.php
@@ -281,7 +281,7 @@ class InfoAction extends FormlessAction {
$pageLang = $title->getPageLanguage()->getCode();
$pageLangHtml = $pageLang . ' - ' .
- Language::fetchLanguageName( $pageLang, $lang->getCode() );
+ $services->getLanguageNameUtils()->getLanguageName( $pageLang, $lang->getCode() );
// Link to Special:PageLanguage with pre-filled page title if user has permissions
$permissionManager = $services->getPermissionManager();
if ( $config->get( 'PageLanguageUseDB' )
diff --git a/includes/api/ApiParse.php b/includes/api/ApiParse.php
index 5e1d70ddf848..fb4aa63d26e1 100644
--- a/includes/api/ApiParse.php
+++ b/includes/api/ApiParse.php
@@ -658,6 +658,7 @@ class ApiParse extends ApiBase {
}
private function formatLangLinks( $links ) {
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
$result = [];
foreach ( $links as $link ) {
$entry = [];
@@ -668,13 +669,13 @@ class ApiParse extends ApiBase {
if ( $title ) {
$entry['url'] = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
// localised language name in 'uselang' language
- $entry['langname'] = Language::fetchLanguageName(
+ $entry['langname'] = $languageNameUtils->getLanguageName(
$title->getInterwiki(),
$this->getLanguage()->getCode()
);
// native language name
- $entry['autonym'] = Language::fetchLanguageName( $title->getInterwiki() );
+ $entry['autonym'] = $languageNameUtils->getLanguageName( $title->getInterwiki() );
}
ApiResult::setContentValue( $entry, 'title', $bits[1] );
$result[] = $entry;
diff --git a/includes/api/ApiQueryAllMessages.php b/includes/api/ApiQueryAllMessages.php
index 7437bb7167ab..39110810c3fe 100644
--- a/includes/api/ApiQueryAllMessages.php
+++ b/includes/api/ApiQueryAllMessages.php
@@ -35,16 +35,15 @@ class ApiQueryAllMessages extends ApiQueryBase {
public function execute() {
$params = $this->extractRequestParams();
-
+ $services = MediaWikiServices::getInstance();
if ( $params['lang'] === null ) {
$langObj = $this->getLanguage();
- } elseif ( !Language::isValidCode( $params['lang'] ) ) {
+ } elseif ( !$services->getLanguageNameUtils()->isValidCode( $params['lang'] ) ) {
$this->dieWithError(
[ 'apierror-invalidlang', $this->encodeParamName( 'lang' ) ], 'invalidlang'
);
} else {
- $langObj = MediaWikiServices::getInstance()->getLanguageFactory()
- ->getLanguage( $params['lang'] );
+ $langObj = $services->getLanguageFactory()->getLanguage( $params['lang'] );
}
if ( $params['enableparser'] ) {
@@ -62,7 +61,8 @@ class ApiQueryAllMessages extends ApiQueryBase {
// Determine which messages should we print
if ( in_array( '*', $params['messages'] ) ) {
- $message_names = Language::getMessageKeysFor( $langObj->getCode() );
+ $message_names = $services->getLocalisationCache()
+ ->getSubitemList( $langObj->getCode(), 'messages' );
if ( $params['includelocal'] ) {
$message_names = array_unique( array_merge(
$message_names,
diff --git a/includes/api/ApiQueryLangLinks.php b/includes/api/ApiQueryLangLinks.php
index 13246e625a1f..c0067632f183 100644
--- a/includes/api/ApiQueryLangLinks.php
+++ b/includes/api/ApiQueryLangLinks.php
@@ -122,11 +122,13 @@ class ApiQueryLangLinks extends ApiQueryBase {
$entry['url'] = wfExpandUrl( $title->getFullURL(), PROTO_CURRENT );
}
}
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
if ( isset( $prop['langname'] ) ) {
- $entry['langname'] = Language::fetchLanguageName( $row->ll_lang, $params['inlanguagecode'] );
+ $entry['langname'] = $languageNameUtils
+ ->getLanguageName( $row->ll_lang, $params['inlanguagecode'] );
}
if ( isset( $prop['autonym'] ) ) {
- $entry['autonym'] = Language::fetchLanguageName( $row->ll_lang );
+ $entry['autonym'] = $languageNameUtils->getLanguageName( $row->ll_lang );
}
ApiResult::setContentValue( $entry, 'title', $row->ll_title );
$fit = $this->addPageSubItem( $row->ll_from, $entry );
diff --git a/includes/api/ApiQueryLanguageinfo.php b/includes/api/ApiQueryLanguageinfo.php
index 5f85041620ec..a987c0eeac19 100644
--- a/includes/api/ApiQueryLanguageinfo.php
+++ b/includes/api/ApiQueryLanguageinfo.php
@@ -18,6 +18,8 @@
* @file
*/
+use MediaWiki\Languages\LanguageFallback;
+use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MediaWikiServices;
/**
@@ -81,8 +83,8 @@ class ApiQueryLanguageinfo extends ApiQueryBase {
$targetLanguageCode = $this->getLanguage()->getCode();
$include = 'all';
-
- $availableLanguageCodes = array_keys( Language::fetchLanguageNames(
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
+ $availableLanguageCodes = array_keys( $languageNameUtils->getLanguageNames(
// MediaWiki and extensions may return different sets of language codes
// when asked for language names in different languages;
// asking for English language names is most likely to give us the full set,
@@ -156,16 +158,16 @@ class ApiQueryLanguageinfo extends ApiQueryBase {
}
if ( $includeAutonym ) {
- $autonym = Language::fetchLanguageName(
+ $autonym = $languageNameUtils->getLanguageName(
$languageCode,
- Language::AS_AUTONYMS,
+ LanguageNameUtils::AUTONYMS,
$include
);
$info['autonym'] = $autonym;
}
if ( $includeName ) {
- $name = Language::fetchLanguageName(
+ $name = $languageNameUtils->getLanguageName(
$languageCode,
$targetLanguageCode,
$include
@@ -174,10 +176,10 @@ class ApiQueryLanguageinfo extends ApiQueryBase {
}
if ( $includeFallbacks ) {
- $fallbacks = Language::getFallbacksFor(
+ $fallbacks = MediaWikiServices::getInstance()->getLanguageFallback()->getAll(
$languageCode,
// allow users to distinguish between implicit and explicit 'en' fallbacks
- Language::STRICT_FALLBACKS
+ LanguageFallback::STRICT
);
ApiResult::setIndexedTagName( $fallbacks, 'fb' );
$info['fallbacks'] = $fallbacks;
diff --git a/includes/api/ApiQuerySiteinfo.php b/includes/api/ApiQuerySiteinfo.php
index 264f86e5a3e5..5afd1fff66ca 100644
--- a/includes/api/ApiQuerySiteinfo.php
+++ b/includes/api/ApiQuerySiteinfo.php
@@ -399,7 +399,9 @@ class ApiQuerySiteinfo extends ApiQueryBase {
$params = $this->extractRequestParams();
$langCode = $params['inlanguagecode'] ?? '';
- $langNames = Language::fetchLanguageNames( $langCode );
+ $langNames = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( $langCode );
$getPrefixes = MediaWikiServices::getInstance()->getInterwikiLookup()->getAllPrefixes( $local );
$extraLangPrefixes = $this->getConfig()->get( 'ExtraInterlanguageLinkPrefixes' );
@@ -711,7 +713,9 @@ class ApiQuerySiteinfo extends ApiQueryBase {
public function appendLanguages( $property ) {
$params = $this->extractRequestParams();
$langCode = $params['inlanguagecode'] ?? '';
- $langNames = Language::fetchLanguageNames( $langCode );
+ $langNames = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( $langCode );
$data = [];
@@ -777,10 +781,11 @@ class ApiQuerySiteinfo extends ApiQueryBase {
$data = [];
$allowed = Skin::getAllowedSkins();
$default = Skin::normalizeKey( 'default' );
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
foreach ( Skin::getSkinNames() as $name => $displayName ) {
$msg = $this->msg( "skinname-{$name}" );
$code = $this->getParameter( 'inlanguagecode' );
- if ( $code && Language::isValidCode( $code ) ) {
+ if ( $code && $languageNameUtils->isValidCode( $code ) ) {
$msg->inLanguage( $code );
} else {
$msg->inContentLanguage();
diff --git a/includes/api/ApiSetPageLanguage.php b/includes/api/ApiSetPageLanguage.php
index 84ab3ea98104..68531b7f2c32 100644
--- a/includes/api/ApiSetPageLanguage.php
+++ b/includes/api/ApiSetPageLanguage.php
@@ -20,6 +20,8 @@
* @file
*/
+use MediaWiki\MediaWikiServices;
+
/**
* API module that facilitates changing the language of a page.
* The API equivalent of SpecialPageLanguage.
@@ -114,7 +116,9 @@ class ApiSetPageLanguage extends ApiBase {
'lang' => [
ApiBase::PARAM_TYPE => array_merge(
[ 'default' ],
- array_keys( Language::fetchLanguageNames( null, 'mwfile' ) )
+ array_keys( MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( null, 'mwfile' ) )
),
ApiBase::PARAM_REQUIRED => true,
],
diff --git a/includes/cache/MessageCache.php b/includes/cache/MessageCache.php
index 09d64f3d32f6..613a505235a0 100644
--- a/includes/cache/MessageCache.php
+++ b/includes/cache/MessageCache.php
@@ -21,6 +21,8 @@
* @ingroup Cache
*/
use MediaWiki\Languages\LanguageFactory;
+use MediaWiki\Languages\LanguageFallback;
+use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
@@ -110,6 +112,10 @@ class MessageCache implements LoggerAwareInterface {
protected $langFactory;
/** @var LocalisationCache */
protected $localisationCache;
+ /** @var LanguageNameUtils */
+ protected $languageNameUtils;
+ /** @var LanguageFallback */
+ protected $languageFallback;
/**
* Get the singleton instance of this class
@@ -152,6 +158,8 @@ class MessageCache implements LoggerAwareInterface {
* Default: true.
* @param LanguageFactory $langFactory
* @param LocalisationCache $localisationCache
+ * @param LanguageNameUtils $languageNameUtils
+ * @param LanguageFallback $languageFallback
*/
public function __construct(
WANObjectCache $wanCache,
@@ -162,7 +170,9 @@ class MessageCache implements LoggerAwareInterface {
LoggerInterface $logger,
array $options,
LanguageFactory $langFactory,
- LocalisationCache $localisationCache
+ LocalisationCache $localisationCache,
+ LanguageNameUtils $languageNameUtils,
+ LanguageFallback $languageFallback
) {
$this->wanCache = $wanCache;
$this->clusterCache = $clusterCache;
@@ -172,6 +182,8 @@ class MessageCache implements LoggerAwareInterface {
$this->logger = $logger;
$this->langFactory = $langFactory;
$this->localisationCache = $localisationCache;
+ $this->languageNameUtils = $languageNameUtils;
+ $this->languageFallback = $languageFallback;
$this->cache = new MapCacheLRU( 5 ); // limit size for sanity
@@ -1014,7 +1026,7 @@ class MessageCache implements LoggerAwareInterface {
// Try checking the database for all of the fallback languages
if ( $useDB ) {
- $fallbackChain = Language::getFallbacksFor( $langcode );
+ $fallbackChain = $this->languageFallback->getAll( $langcode );
foreach ( $fallbackChain as $code ) {
if ( isset( $alreadyTried[$code] ) ) {
@@ -1319,7 +1331,7 @@ class MessageCache implements LoggerAwareInterface {
* Mainly used after a mass rebuild
*/
public function clear() {
- $langs = Language::fetchLanguageNames( null, 'mw' );
+ $langs = $this->languageNameUtils->getLanguageNames( null, 'mw' );
foreach ( array_keys( $langs ) as $code ) {
$this->wanCache->touchCheckKey( $this->getCheckKey( $code ) );
}
@@ -1339,7 +1351,7 @@ class MessageCache implements LoggerAwareInterface {
}
$lang = array_pop( $pieces );
- if ( !Language::fetchLanguageName( $lang, null, 'mw' ) ) {
+ if ( !$this->languageNameUtils->getLanguageName( $lang, null, 'mw' ) ) {
return [ $key, $wgLanguageCode ];
}
diff --git a/includes/content/WikitextContentHandler.php b/includes/content/WikitextContentHandler.php
index 191c718ca81a..d8183605c5bc 100644
--- a/includes/content/WikitextContentHandler.php
+++ b/includes/content/WikitextContentHandler.php
@@ -23,6 +23,7 @@
* @ingroup Content
*/
+use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MediaWikiServices;
/**
@@ -53,16 +54,22 @@ class WikitextContentHandler extends TextContentHandler {
public function makeRedirectContent( Title $destination, $text = '' ) {
$optionalColon = '';
+ $services = MediaWikiServices::getInstance();
if ( $destination->getNamespace() == NS_CATEGORY ) {
$optionalColon = ':';
} else {
$iw = $destination->getInterwiki();
- if ( $iw && Language::fetchLanguageName( $iw, null, 'mw' ) ) {
+ if ( $iw && $services
+ ->getLanguageNameUtils()
+ ->getLanguageName( $iw,
+ LanguageNameUtils::AUTONYMS,
+ LanguageNameUtils::DEFINED )
+ ) {
$optionalColon = ':';
}
}
- $mwRedir = MediaWikiServices::getInstance()->getMagicWordFactory()->get( 'redirect' );
+ $mwRedir = $services->getMagicWordFactory()->get( 'redirect' );
$redirectText = $mwRedir->getSynonym( 0 ) .
' [[' . $optionalColon . $destination->getFullText() . ']]';
diff --git a/includes/context/RequestContext.php b/includes/context/RequestContext.php
index c9abe21a841a..9674105cb393 100644
--- a/includes/context/RequestContext.php
+++ b/includes/context/RequestContext.php
@@ -294,7 +294,11 @@ class RequestContext implements IContextSource, MutableContext {
$code = strtolower( $code );
# Validate $code
- if ( !$code || !Language::isValidCode( $code ) || $code === 'qqq' ) {
+ if ( !$code
+ || !MediaWikiServices::getInstance()->getLanguageNameUtils()
+ ->isValidCode( $code )
+ || $code === 'qqq'
+ ) {
$code = $wgLanguageCode;
}
diff --git a/includes/htmlform/fields/HTMLSelectLanguageField.php b/includes/htmlform/fields/HTMLSelectLanguageField.php
index 98cf3b19c453..2383953f2ac4 100644
--- a/includes/htmlform/fields/HTMLSelectLanguageField.php
+++ b/includes/htmlform/fields/HTMLSelectLanguageField.php
@@ -1,5 +1,7 @@
<?php
+use MediaWiki\MediaWikiServices;
+
/**
* Language select field.
*/
@@ -15,7 +17,9 @@ class HTMLSelectLanguageField extends HTMLSelectField {
$languageCode = $wgLanguageCode;
}
- $languages = Language::fetchLanguageNames( null, 'mw' );
+ $languages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( null, 'mw' );
// Make sure the site language is in the list;
// a custom language code might not have a defined name…
diff --git a/includes/installer/WebInstaller.php b/includes/installer/WebInstaller.php
index de333998e50c..7d599fff6efd 100644
--- a/includes/installer/WebInstaller.php
+++ b/includes/installer/WebInstaller.php
@@ -517,7 +517,9 @@ class WebInstaller extends Installer {
public function getAcceptLanguage() {
global $wgLanguageCode, $wgRequest;
- $mwLanguages = Language::fetchLanguageNames( null, 'mwfile' );
+ $mwLanguages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( null, 'mwfile' );
$headerLanguages = array_keys( $wgRequest->getAcceptLang() );
foreach ( $headerLanguages as $lang ) {
diff --git a/includes/installer/WebInstallerLanguage.php b/includes/installer/WebInstallerLanguage.php
index 50ab1cfc313c..b5c97d2ef888 100644
--- a/includes/installer/WebInstallerLanguage.php
+++ b/includes/installer/WebInstallerLanguage.php
@@ -19,6 +19,8 @@
* @ingroup Installer
*/
+use MediaWiki\MediaWikiServices;
+
class WebInstallerLanguage extends WebInstallerPage {
/**
@@ -30,7 +32,9 @@ class WebInstallerLanguage extends WebInstallerPage {
$userLang = $r->getVal( 'uselang' );
$contLang = $r->getVal( 'ContLang' );
- $languages = Language::fetchLanguageNames( null, 'mwfile' );
+ $languages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( null, 'mwfile' );
$lifetime = intval( ini_get( 'session.gc_maxlifetime' ) );
if ( !$lifetime ) {
$lifetime = 1440; // PHP default
@@ -103,7 +107,9 @@ class WebInstallerLanguage extends WebInstallerPage {
$select = new XmlSelect( $name, $name, $selectedCode );
$select->setAttribute( 'tabindex', $this->parent->nextTabIndex() );
- $languages = Language::fetchLanguageNames( null, 'mwfile' );
+ $languages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( null, 'mwfile' );
foreach ( $languages as $code => $lang ) {
$select->addOption( "$code - $lang", $code );
}
diff --git a/includes/logging/PageLangLogFormatter.php b/includes/logging/PageLangLogFormatter.php
index a08427a0d881..5a8947561cdb 100644
--- a/includes/logging/PageLangLogFormatter.php
+++ b/includes/logging/PageLangLogFormatter.php
@@ -23,6 +23,8 @@
* @since 1.24
*/
+use MediaWiki\MediaWikiServices;
+
/**
* This class formats language change log entries.
*
@@ -48,9 +50,10 @@ class PageLangLogFormatter extends LogFormatter {
}
// Convert language codes to names in user language
- $logOld = Language::fetchLanguageName( $oldLang, $userLang )
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
+ $logOld = $languageNameUtils->getLanguageName( $oldLang, $userLang )
. ' (' . $oldLang . ')';
- $logNew = Language::fetchLanguageName( $newLang, $userLang )
+ $logNew = $languageNameUtils->getLanguageName( $newLang, $userLang )
. ' (' . $newLang . ')';
// Add the default message to languages if required
diff --git a/includes/media/FormatMetadata.php b/includes/media/FormatMetadata.php
index c87b5dd5d691..36ca85b23630 100644
--- a/includes/media/FormatMetadata.php
+++ b/includes/media/FormatMetadata.php
@@ -978,7 +978,9 @@ class FormatMetadata extends ContextSource {
break;
case 'LanguageCode':
- $lang = Language::fetchLanguageName( strtolower( $val ), $this->getLanguage()->getCode() );
+ $lang = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageName( strtolower( $val ), $this->getLanguage()->getCode() );
$val = htmlspecialchars( $lang ?: $val );
break;
@@ -1186,11 +1188,12 @@ class FormatMetadata extends ContextSource {
}
$lowLang = strtolower( $lang );
- $langName = Language::fetchLanguageName( $lowLang );
+ $languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
+ $langName = $languageNameUtils->getLanguageName( $lowLang );
if ( $langName === '' ) {
// try just the base language name. (aka en-US -> en ).
$langPrefix = explode( '-', $lowLang, 2 )[0];
- $langName = Language::fetchLanguageName( $langPrefix );
+ $langName = $languageNameUtils->getLanguageName( $langPrefix );
if ( $langName === '' ) {
// give up.
$langName = $lang;
@@ -1893,8 +1896,9 @@ class FormatMetadata extends ContextSource {
* @since 1.23
*/
protected function getPriorityLanguages() {
- $priorityLanguages =
- Language::getFallbacksIncludingSiteLanguage( $this->getLanguage()->getCode() );
+ $priorityLanguages = MediaWikiServices::getInstance()
+ ->getLanguageFallback()
+ ->getAllIncludingSiteLanguage( $this->getLanguage()->getCode() );
$priorityLanguages = array_merge(
(array)$this->getLanguage()->getCode(),
$priorityLanguages[0],
diff --git a/includes/media/SvgHandler.php b/includes/media/SvgHandler.php
index 98c22a32dd76..41e78adf27db 100644
--- a/includes/media/SvgHandler.php
+++ b/includes/media/SvgHandler.php
@@ -21,6 +21,7 @@
* @ingroup Media
*/
+use MediaWiki\MediaWikiServices;
use MediaWiki\Shell\Shell;
use Wikimedia\ScopedCallback;
@@ -547,7 +548,10 @@ class SvgHandler extends ImageHandler {
return ( $value > 0 );
} elseif ( $name == 'lang' ) {
// Validate $code
- if ( $value === '' || !Language::isValidCode( $value ) ) {
+ if ( $value === ''
+ || !MediaWikiServices::getInstance()->getLanguageNameUtils()
+ ->isValidCode( $value )
+ ) {
return false;
}
diff --git a/includes/page/ImagePage.php b/includes/page/ImagePage.php
index ffd506ce3425..e6b18db991a5 100644
--- a/includes/page/ImagePage.php
+++ b/includes/page/ImagePage.php
@@ -1102,7 +1102,9 @@ EOT
*/
private function createXmlOptionStringForLanguage( $lang, $selected ) {
$code = LanguageCode::bcp47( $lang );
- $name = Language::fetchLanguageName( $code, $this->getContext()->getLanguage()->getCode() );
+ $name = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageName( $code, $this->getContext()->getLanguage()->getCode() );
if ( $name !== '' ) {
$display = $this->getContext()->msg( 'img-lang-opt', $code, $name )->text();
} else {
diff --git a/includes/parser/CoreParserFunctions.php b/includes/parser/CoreParserFunctions.php
index 3515d11fa2a7..5be36041299d 100644
--- a/includes/parser/CoreParserFunctions.php
+++ b/includes/parser/CoreParserFunctions.php
@@ -902,7 +902,9 @@ class CoreParserFunctions {
public static function language( $parser, $code = '', $inLanguage = '' ) {
$code = strtolower( $code );
$inLanguage = strtolower( $inLanguage );
- $lang = Language::fetchLanguageName( $code, $inLanguage );
+ $lang = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageName( $code, $inLanguage );
return $lang !== '' ? $lang : LanguageCode::bcp47( $code );
}
diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php
index 432073dfe311..08fcd092fe5c 100644
--- a/includes/parser/Parser.php
+++ b/includes/parser/Parser.php
@@ -23,6 +23,7 @@
use MediaWiki\BadFileLookup;
use MediaWiki\Config\ServiceOptions;
use MediaWiki\Languages\LanguageConverterFactory;
+use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\Linker\LinkRenderer;
use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Linker\LinkTarget;
@@ -2529,8 +2530,13 @@ class Parser {
# Interwikis
if (
$iw && $this->mOptions->getInterwikiMagic() && $nottalk && (
- Language::fetchLanguageName( $iw, null, 'mw' ) ||
- in_array( $iw, $this->svcOptions->get( 'ExtraInterlanguageLinkPrefixes' ) )
+ MediaWikiServices::getInstance()->getLanguageNameUtils()
+ ->getLanguageName(
+ $iw,
+ LanguageNameUtils::AUTONYMS,
+ LanguageNameUtils::DEFINED
+ )
+ || in_array( $iw, $this->svcOptions->get( 'ExtraInterlanguageLinkPrefixes' ) )
)
) {
# T26502: filter duplicates
diff --git a/includes/preferences/DefaultPreferencesFactory.php b/includes/preferences/DefaultPreferencesFactory.php
index 459b4ce56924..10c918d14748 100644
--- a/includes/preferences/DefaultPreferencesFactory.php
+++ b/includes/preferences/DefaultPreferencesFactory.php
@@ -36,6 +36,7 @@ use LanguageConverter;
use MediaWiki\Auth\AuthManager;
use MediaWiki\Auth\PasswordAuthenticationRequest;
use MediaWiki\Config\ServiceOptions;
+use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\Linker\LinkRenderer;
use MediaWiki\MediaWikiServices;
use MediaWiki\Permissions\PermissionManager;
@@ -70,6 +71,9 @@ class DefaultPreferencesFactory implements PreferencesFactory {
/** @var Language The wiki's content language. */
protected $contLang;
+ /** @var LanguageNameUtils */
+ protected $languageNameUtils;
+
/** @var AuthManager */
protected $authManager;
@@ -126,6 +130,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
* @param NamespaceInfo $nsInfo
* @param PermissionManager $permissionManager
* @param ILanguageConverter|null $languageConverter
+ * @param LanguageNameUtils|null $languageNameUtils
*/
public function __construct(
ServiceOptions $options,
@@ -134,7 +139,8 @@ class DefaultPreferencesFactory implements PreferencesFactory {
LinkRenderer $linkRenderer,
NamespaceInfo $nsInfo,
PermissionManager $permissionManager,
- ILanguageConverter $languageConverter = null
+ ILanguageConverter $languageConverter = null,
+ LanguageNameUtils $languageNameUtils = null
) {
$options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS );
@@ -144,6 +150,8 @@ class DefaultPreferencesFactory implements PreferencesFactory {
$this->linkRenderer = $linkRenderer;
$this->nsInfo = $nsInfo;
$this->permissionManager = $permissionManager;
+ $this->languageNameUtils = $languageNameUtils ??
+ MediaWikiServices::getInstance()->getLanguageNameUtils();
$this->logger = new NullLogger();
$this->languageConverter = DeprecationHelper::newArgumentWithDeprecation(
__METHOD__,
@@ -448,7 +456,7 @@ class DefaultPreferencesFactory implements PreferencesFactory {
];
}
- $languages = $services->getLanguageNameUtils()->getLanguageNames( null, 'mwfile' );
+ $languages = $this->languageNameUtils->getLanguageNames( null, 'mwfile' );
$languageCode = $this->options->get( 'LanguageCode' );
if ( !array_key_exists( $languageCode, $languages ) ) {
$languages[$languageCode] = $languageCode;
diff --git a/includes/site/Site.php b/includes/site/Site.php
index 401f6e48292d..4eb06c287e99 100644
--- a/includes/site/Site.php
+++ b/includes/site/Site.php
@@ -1,5 +1,7 @@
<?php
+use MediaWiki\MediaWikiServices;
+
/**
* Represents a single site.
*
@@ -463,7 +465,11 @@ class Site implements Serializable {
* @param string|null $languageCode
*/
public function setLanguageCode( $languageCode ) {
- if ( $languageCode !== null && !Language::isValidCode( $languageCode ) ) {
+ if ( $languageCode !== null
+ && !MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->isValidCode( $languageCode )
+ ) {
throw new InvalidArgumentException( "$languageCode is not a valid language code." );
}
$this->languageCode = $languageCode;
diff --git a/includes/skins/SkinTemplate.php b/includes/skins/SkinTemplate.php
index c34ca43ba39c..9d4325b114ec 100644
--- a/includes/skins/SkinTemplate.php
+++ b/includes/skins/SkinTemplate.php
@@ -93,7 +93,9 @@ class SkinTemplate extends Skin {
$ilInterwikiCode = $this->mapInterwikiToLanguage( $languageLinkTitle->getInterwiki() );
- $ilLangName = Language::fetchLanguageName( $ilInterwikiCode );
+ $ilLangName = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageName( $ilInterwikiCode );
if ( strval( $ilLangName ) === '' ) {
$ilDisplayTextMsg = wfMessage( "interlanguage-link-$ilInterwikiCode" );
@@ -111,7 +113,7 @@ class SkinTemplate extends Skin {
// CLDR extension or similar is required to localize the language name;
// otherwise we'll end up with the autonym again.
- $ilLangLocalName = Language::fetchLanguageName(
+ $ilLangLocalName = MediaWikiServices::getInstance()->getLanguageNameUtils()->getLanguageName(
$ilInterwikiCode,
$userLang->getCode()
);
diff --git a/includes/specials/SpecialMyLanguage.php b/includes/specials/SpecialMyLanguage.php
index 408bd9288342..229602d69cbc 100644
--- a/includes/specials/SpecialMyLanguage.php
+++ b/includes/specials/SpecialMyLanguage.php
@@ -65,6 +65,7 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
* @return Title|null
*/
public function findTitle( $subpage ) {
+ $services = MediaWikiServices::getInstance();
// base = title without language code suffix
// provided = the title as it was given
$base = $provided = null;
@@ -76,7 +77,7 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
$pos = strrpos( $subpage, '/' );
$basepage = substr( $subpage, 0, $pos );
$code = substr( $subpage, $pos + 1 );
- if ( strlen( $code ) && Language::isKnownLanguageTag( $code ) ) {
+ if ( strlen( $code ) && $services->getLanguageNameUtils()->isKnownLanguageTag( $code ) ) {
$base = Title::newFromText( $basepage );
}
}
@@ -93,7 +94,7 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
}
$uiLang = $this->getLanguage();
- $contLang = MediaWikiServices::getInstance()->getContentLanguage();
+ $contLang = $services->getContentLanguage();
if ( $uiLang->equals( $contLang ) ) {
// Short circuit when the current UI language is the
diff --git a/includes/specials/SpecialPageLanguage.php b/includes/specials/SpecialPageLanguage.php
index bc6de005ae5b..9f99dcdced4b 100644
--- a/includes/specials/SpecialPageLanguage.php
+++ b/includes/specials/SpecialPageLanguage.php
@@ -87,7 +87,9 @@ class SpecialPageLanguage extends FormSpecialPage {
// Building a language selector
$userLang = $this->getLanguage()->getCode();
- $languages = Language::fetchLanguageNames( $userLang, 'mwfile' );
+ $languages = MediaWikiServices::getInstance()
+ ->getLanguageNameUtils()
+ ->getLanguageNames( $userLang, 'mwfile' );
$options = [];
foreach ( $languages as $code => $name ) {
$options["$code - $name"] = $code;
diff --git a/includes/specials/pagers/AllMessagesTablePager.php b/includes/specials/pagers/AllMessagesTablePager.php
index 85b60e83b4ce..d388c27f9630 100644
--- a/includes/specials/pagers/AllMessagesTablePager.php
+++ b/includes/specials/pagers/AllMessagesTablePager.php
@@ -110,7 +110,9 @@ class AllMessagesTablePager extends TablePager {
}
function getAllMessages( $descending ) {
- $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
+ $messageNames = MediaWikiServices::getInstance()
+ ->getLocalisationCache()
+ ->getSubitemList( 'en', 'messages' );
// Normalise message names so they look like page titles and sort correctly - T86139
$messageNames = array_map( [ $this->lang, 'ucfirst' ], $messageNames );