Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 107 additions & 2 deletions dist-persist/wbstack/src/Settings/LocalSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,7 @@
wfLoadExtension( 'EntitySchema' );
wfLoadExtension( 'UniversalLanguageSelector' );
wfLoadExtension( 'cldr' );
# TODO load again once there is a fix for localization cache reload without DBhttps://phabricator.wikimedia.org/T237148
#wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'OAuth' );
wfLoadExtension( 'JsonConfig' );
wfLoadExtension( 'Math' );
Expand Down Expand Up @@ -735,4 +734,110 @@ function getElasticClusterConfig( string $prefix ) {
}
}

if ($wwIsLocalisationRebuild) {
$extensions = [];

$loadSkin = function ($name) use (&$extensions, $wgBaseDirectory) {
array_push($extensions, "$wgBaseDirectory/skins/" . $name . "/skin.json");
};
$loadExtension = function ($name) use (&$extensions, $wgBaseDirectory) {
array_push($extensions, "$wgBaseDirectory/extensions/" . $name . "/extension.json");
};
$loadPath = function ($path) use (&$extensions) {
array_push($extensions, $path);
};

$loadSkin( 'Vector' );
$loadSkin( 'Timeless' );
$loadSkin( 'Modern' );
$loadSkin( 'MinervaNeue' );
$loadExtension( 'SyntaxHighlight_GeSHi' );
$loadExtension( 'RevisionSlider' );
$loadExtension( 'TorBlock' );
$loadExtension( 'Nuke' );
$loadExtension( 'EntitySchema' );
$loadExtension( 'UniversalLanguageSelector' );
$loadExtension( 'cldr' );
$loadExtension( 'Gadgets' );
$loadExtension( 'OAuth' );
$loadExtension( 'JsonConfig' );
$loadExtension( 'Math' );
$loadExtension( 'Kartographer' );
$loadExtension( 'PageImages' );
$loadExtension( 'TextExtracts' );
$loadExtension( 'Scribunto' );
$loadExtension( 'Cite' );
$loadExtension( 'TemplateSandbox' );
$loadExtension( 'WikiEditor' );
$loadExtension( 'CodeEditor' );
$loadExtension( 'CodeMirror' );
$loadExtension( 'SecureLinkFixer' );
$loadExtension( 'Echo' );
$loadExtension( 'Thanks' );
$loadExtension( 'Graph' );
$loadExtension( 'Poem' );
$loadExtension( 'TemplateData' );
$loadExtension( 'AdvancedSearch' );
$loadExtension( 'ParserFunctions' );
$loadExtension( 'EmbedVideo' );
$loadExtension( 'DeleteBatch' );
$loadExtension( 'MultimediaViewer' );
$loadExtension( 'WikiHiero' );
$loadExtension( 'ConfirmAccount' );
$loadExtension( 'InviteSignup' );
$loadExtension( 'WikibaseInWikitext' );
$loadExtension( 'WikibaseEdtf' );
$loadExtension( 'ThatSrc' );
$loadExtension( 'TwoColConflict' );
$loadExtension( 'StopForumSpam' );
$loadExtension( 'SpamBlacklist' );
$loadExtension( 'ConfirmEdit' );
$loadPath( "$wgBaseDirectory/extensions/ConfirmEdit/QuestyCaptcha/extension.json" );
$loadPath( "$wgBaseDirectory/extensions/ConfirmEdit/ReCaptchaNoCaptcha/extension.json" );
$loadExtension( 'Mailgun' );
$loadExtension( 'MobileFrontend' );
$loadExtension( 'Score' );
$loadPath( "$wgBaseDirectory/extensions/Wikibase/extension-repo.json" );
$loadPath( "$wgBaseDirectory/extensions/Wikibase/extension-client.json" );
$loadExtension( 'WikibaseLexeme' );
$loadExtension( 'Auth_remoteuser' );
$loadExtension( 'WikibaseManifest' );
$loadExtension( 'Elastica' );
$loadExtension( 'CirrusSearch' );
$loadExtension( 'WikibaseCirrusSearch' );
$loadExtension( 'WikibaseLexemeCirrusSearch' );

$extensionMessagesFiles = [];
$messagesDirs = [];

foreach ($extensions as $extension) {
$settings = json_decode(file_get_contents($extension), true);
$path = implode('/', array_slice(explode('/', $extension), 0, -1));

$addPath = function ($file) use ($path) {
return $path . '/' . $file;
};

if (array_key_exists('ExtensionMessagesFiles', $settings)) {
foreach ($settings['ExtensionMessagesFiles'] as $key => $file) {
$extensionMessagesFiles[$key] = $addPath($file);
}
}

if (array_key_exists('MessagesDirs', $settings)) {
foreach ($settings['MessagesDirs'] as $extension => $dirs) {
if (is_array($dirs)) {
$messagesDirs[$extension] = $dirs;
} else {
$messagesDirs[$extension] = array($dirs);
}
$messagesDirs[$extension] = array_map($addPath, $messagesDirs[$extension]);
}
}
}

$wgLocalisationCacheConf['ExtensionMessagesFiles'] = $extensionMessagesFiles;
$wgLocalisationCacheConf['MessagesDirs'] = $messagesDirs;
}

require_once __DIR__ . '/Hooks.php';
109 changes: 107 additions & 2 deletions dist/wbstack/src/Settings/LocalSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,7 @@
wfLoadExtension( 'EntitySchema' );
wfLoadExtension( 'UniversalLanguageSelector' );
wfLoadExtension( 'cldr' );
# TODO load again once there is a fix for localization cache reload without DBhttps://phabricator.wikimedia.org/T237148
#wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'OAuth' );
wfLoadExtension( 'JsonConfig' );
wfLoadExtension( 'Math' );
Expand Down Expand Up @@ -735,4 +734,110 @@ function getElasticClusterConfig( string $prefix ) {
}
}

if ($wwIsLocalisationRebuild) {
$extensions = [];

$loadSkin = function ($name) use (&$extensions, $wgBaseDirectory) {
array_push($extensions, "$wgBaseDirectory/skins/" . $name . "/skin.json");
};
$loadExtension = function ($name) use (&$extensions, $wgBaseDirectory) {
array_push($extensions, "$wgBaseDirectory/extensions/" . $name . "/extension.json");
};
$loadPath = function ($path) use (&$extensions) {
array_push($extensions, $path);
};

$loadSkin( 'Vector' );
$loadSkin( 'Timeless' );
$loadSkin( 'Modern' );
$loadSkin( 'MinervaNeue' );
$loadExtension( 'SyntaxHighlight_GeSHi' );
$loadExtension( 'RevisionSlider' );
$loadExtension( 'TorBlock' );
$loadExtension( 'Nuke' );
$loadExtension( 'EntitySchema' );
$loadExtension( 'UniversalLanguageSelector' );
$loadExtension( 'cldr' );
$loadExtension( 'Gadgets' );
$loadExtension( 'OAuth' );
$loadExtension( 'JsonConfig' );
$loadExtension( 'Math' );
$loadExtension( 'Kartographer' );
$loadExtension( 'PageImages' );
$loadExtension( 'TextExtracts' );
$loadExtension( 'Scribunto' );
$loadExtension( 'Cite' );
$loadExtension( 'TemplateSandbox' );
$loadExtension( 'WikiEditor' );
$loadExtension( 'CodeEditor' );
$loadExtension( 'CodeMirror' );
$loadExtension( 'SecureLinkFixer' );
$loadExtension( 'Echo' );
$loadExtension( 'Thanks' );
$loadExtension( 'Graph' );
$loadExtension( 'Poem' );
$loadExtension( 'TemplateData' );
$loadExtension( 'AdvancedSearch' );
$loadExtension( 'ParserFunctions' );
$loadExtension( 'EmbedVideo' );
$loadExtension( 'DeleteBatch' );
$loadExtension( 'MultimediaViewer' );
$loadExtension( 'WikiHiero' );
$loadExtension( 'ConfirmAccount' );
$loadExtension( 'InviteSignup' );
$loadExtension( 'WikibaseInWikitext' );
$loadExtension( 'WikibaseEdtf' );
$loadExtension( 'ThatSrc' );
$loadExtension( 'TwoColConflict' );
$loadExtension( 'StopForumSpam' );
$loadExtension( 'SpamBlacklist' );
$loadExtension( 'ConfirmEdit' );
$loadPath( "$wgBaseDirectory/extensions/ConfirmEdit/QuestyCaptcha/extension.json" );
$loadPath( "$wgBaseDirectory/extensions/ConfirmEdit/ReCaptchaNoCaptcha/extension.json" );
$loadExtension( 'Mailgun' );
$loadExtension( 'MobileFrontend' );
$loadExtension( 'Score' );
$loadPath( "$wgBaseDirectory/extensions/Wikibase/extension-repo.json" );
$loadPath( "$wgBaseDirectory/extensions/Wikibase/extension-client.json" );
$loadExtension( 'WikibaseLexeme' );
$loadExtension( 'Auth_remoteuser' );
$loadExtension( 'WikibaseManifest' );
$loadExtension( 'Elastica' );
$loadExtension( 'CirrusSearch' );
$loadExtension( 'WikibaseCirrusSearch' );
$loadExtension( 'WikibaseLexemeCirrusSearch' );

$extensionMessagesFiles = [];
$messagesDirs = [];

foreach ($extensions as $extension) {
$settings = json_decode(file_get_contents($extension), true);
$path = implode('/', array_slice(explode('/', $extension), 0, -1));

$addPath = function ($file) use ($path) {
return $path . '/' . $file;
};

if (array_key_exists('ExtensionMessagesFiles', $settings)) {
foreach ($settings['ExtensionMessagesFiles'] as $key => $file) {
$extensionMessagesFiles[$key] = $addPath($file);
}
}

if (array_key_exists('MessagesDirs', $settings)) {
foreach ($settings['MessagesDirs'] as $extension => $dirs) {
if (is_array($dirs)) {
$messagesDirs[$extension] = $dirs;
} else {
$messagesDirs[$extension] = array($dirs);
}
$messagesDirs[$extension] = array_map($addPath, $messagesDirs[$extension]);
}
}
}

$wgLocalisationCacheConf['ExtensionMessagesFiles'] = $extensionMessagesFiles;
$wgLocalisationCacheConf['MessagesDirs'] = $messagesDirs;
}

require_once __DIR__ . '/Hooks.php';