Transmit current autonym via ResourceLoader instead of config var

This avoids loading of wgULSCurrentAutonym in every HTML page.

Change-Id: I8f3a28e3b46f41926bcbe54ace493a33f9ba4566
This commit is contained in:
Fomafix
2024-10-07 10:38:15 +00:00
committed by jenkins-bot
parent aa5fe16a88
commit a0df9be678
3 changed files with 34 additions and 7 deletions

View File

@@ -32,8 +32,10 @@ use MediaWiki\Hook\MakeGlobalVariablesScriptHook;
use MediaWiki\Hook\UserGetLanguageObjectHook;
use MediaWiki\Html\Html;
use MediaWiki\Languages\LanguageNameUtils;
use MediaWiki\MediaWikiServices;
use MediaWiki\Output\OutputPage;
use MediaWiki\Preferences\Hook\GetPreferencesHook;
use MediaWiki\ResourceLoader\Context;
use MediaWiki\ResourceLoader\Hook\ResourceLoaderGetConfigVarsHook;
use MediaWiki\Skins\Hook\SkinAfterPortletHook;
use MediaWiki\User\User;
@@ -448,13 +450,9 @@ class Hooks implements
$vars['wgULSBabelLanguages'] = array_keys( $userLanguageInfo );
}
// An optimization to avoid loading all of uls.data just to get the autonym
$langCode = $out->getLanguage()->getCode();
$vars['wgULSCurrentAutonym'] = $this->languageNameUtils->getLanguageName( $langCode );
$setLangCode = $this->getSetLang( $out );
if ( $setLangCode ) {
$vars['wgULSCurrentLangCode'] = $langCode;
$vars['wgULSCurrentLangCode'] = $out->getLanguage()->getCode();
$vars['wgULSSetLangCode'] = $setLangCode;
$vars['wgULSSetLangName'] = $this->languageNameUtils->getLanguageName( $setLangCode );
}
@@ -582,4 +580,28 @@ class Hooks implements
return null;
}
/**
* @param Context $context
* @param Config $config
* @return array
*/
public static function getModuleData( Context $context, Config $config ): array {
$languageNameUtils = MediaWikiServices::getInstance()->getLanguageNameUtils();
return [
'currentAutonym' => $languageNameUtils->getLanguageName( $context->getLanguage() ),
];
}
/**
* @param Context $context
* @param Config $config
* @return array
*/
public static function getModuleDataSummary( Context $context, Config $config ): array {
return [
'currentAutonym' => $context->getLanguage(),
];
}
}