Skip loading PHP shims for JSON i18n files
authorKevin Israel <pleasestand@live.com>
Mon, 14 Apr 2014 15:45:40 +0000 (11:45 -0400)
committerKevin Israel <pleasestand@live.com>
Tue, 15 Apr 2014 00:37:51 +0000 (20:37 -0400)
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

includes/cache/LocalisationCache.php

index b89316b..9cee321 100644 (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;
                                }