Display the language button on pages without languages

This restores the language button on the user page and main page
for Vector 2022 for pages which have no languages

Bug: T315036
Change-Id: I65e638f05bf1fd6451fa33bd9d8fc660ee45b87e
This commit is contained in:
Jon Robson
2023-06-23 10:36:01 -07:00
committed by jenkins-bot
parent f0e0f3dd39
commit c00567ac4e

View File

@@ -535,11 +535,14 @@ class Hooks implements
return; return;
} }
$hasLanguages = $skin->getLanguages() !== [];
// For Vector 2022, the ULS settings cog is not needed for projects // For Vector 2022, the ULS settings cog is not needed for projects
// where a dedicated language button in the header (VectorLanguageInHeader is true). // where a dedicated language button in the header ($wgVectorLanguageInHeader is true).
if ( $skin->getSkinName() === 'vector-2022' ) { if ( $skin->getSkinName() === 'vector-2022' ) {
$languageInHeaderConfig = $skin->getConfig()->get( 'VectorLanguageInHeader' ); $languageInHeaderConfig = $skin->getConfig()->get( 'VectorLanguageInHeader' );
if ( $languageInHeaderConfig[ $skin->getUser()->isAnon() ? 'logged_out' : 'logged_in' ] ?? true ) { $languageInHeader = $languageInHeaderConfig[
$skin->getUser()->isAnon() ? 'logged_out' : 'logged_in' ] ?? true;
if ( $hasLanguages && $languageInHeader ) {
return; return;
} }
} }
@@ -550,13 +553,11 @@ class Hooks implements
// An empty span will force the language portal to always display in // An empty span will force the language portal to always display in
// the skins that support it! e.g. Vector. (T275147) // the skins that support it! e.g. Vector. (T275147)
if ( count( $skin->getLanguages() ) === 0 ) { if ( !$hasLanguages ) {
// If no languages force it on. // If no languages force it on.
$content .= Html::element( $content .= Html::element(
'span', 'span',
[ [ 'class' => 'uls-after-portlet-link', ],
'class' => 'uls-after-portlet-link',
],
'' ''
); );
} }