From: Niklas Laxström Date: Thu, 22 Sep 2011 14:04:08 +0000 (+0000) Subject: Don't load all languages just to check whether message is known. X-Git-Tag: 1.31.0-rc.0~27478 X-Git-Url: http://git.cyclocoop.org/%22.%24image2.%22?a=commitdiff_plain;h=94367450a23485e5e55961b1b2eea1feecbff38c;p=lhc%2Fweb%2Fwiklou.git Don't load all languages just to check whether message is known. I'm pretty sure I already fixed this once in the past. --- diff --git a/includes/Title.php b/includes/Title.php index e31b77275c..2ad98b4de8 100644 --- a/includes/Title.php +++ b/includes/Title.php @@ -3952,7 +3952,7 @@ class Title { return $this->mDbkeyform == ''; case NS_MEDIAWIKI: // known system message - return $this->getDefaultMessageText() !== false; + return $this->hasSourceText() !== false; default: return false; } @@ -3982,8 +3982,13 @@ class Title { if ( $this->mNamespace == NS_MEDIAWIKI ) { // If the page doesn't exist but is a known system message, default - // message content will be displayed, same for language subpages - return $this->getDefaultMessageText() !== false; + // message content will be displayed, same for language subpages- + // Use always content language to avoid loading hundreds of languages + // to get the link color. + global $wgContLang; + list( $name, $lang ) = MessageCache::singleton()->figureMessage( $wgContLang->lcfirst( $this->getText() ) ); + $message = wfMessage( $name )->inLanguage( $wgContLang )->useDatabase( false ); + return $message->exists(); } return false;