Skip loading PHP shims for JSON i18n files

For now, non-message data (e.g. special page aliases, magic words) belong
in separate files having their own keys in $wgExtensionMessagesFiles. It
is unnecessary to read any PHP files listed under keys that exist in
$wgMessagesDirs; they are merely compatibility shims.

Bug: 63926
Change-Id: I92013d0a45e83ad0f5ac483a3db867806eb71f8a
This commit is contained in:
Kevin Israel 2014-04-14 11:45:40 -04:00
parent a580d5d60e
commit e0043257c0

View file

@ -875,17 +875,15 @@ class LocalisationCache {
}
foreach ( $wgExtensionMessagesFiles as $extension => $fileName ) {
if ( isset( $wgMessagesDirs[$extension] ) ) {
# Already loaded the JSON files for this extension; skip the PHP shim
continue;
}
$data = $this->readPHPFile( $fileName, 'extension' );
$used = false;
foreach ( $data as $key => $item ) {
if ( $key === 'messages' && isset( $wgMessagesDirs[$extension] ) ) {
# For backwards compatibility, ignore messages from extensions in
# $wgExtensionMessagesFiles that are also present in $wgMessagesDirs.
# This allows extensions to use both and be backwards compatible.
# Variables other than $messages still need to be supported though.
continue;
}
if ( $this->mergeExtensionItem( $codeSequence, $key, $allData[$key], $item ) ) {
$used = true;
}