Remove $wgMemc->set() call left over from r73645
[lhc/web/wiklou.git] / includes / MessageCache.php
index db18b1d..33b7e42 100644 (file)
@@ -52,7 +52,7 @@ class MessageCache {
         * better sample, but also takes longer to adapt changes. The counts
         * are aggregrated per day, regardless of the value of this variable.
         */
-       protected static $mAdaptiveDataAge = 604800;
+       protected static $mAdaptiveDataAge = 604800; // Is 7*24*3600
 
        /**
         * Filter the tail of less used messages that are requested more seldom
@@ -334,7 +334,7 @@ class MessageCache {
         */
        function loadFromDB( $code ) {
                wfProfileIn( __METHOD__ );
-               global $wgMaxMsgCacheEntrySize, $wgContLanguageCode, $wgAdaptiveMessageCache;
+               global $wgMaxMsgCacheEntrySize, $wgLanguageCode, $wgAdaptiveMessageCache;
                $dbr = wfGetDB( DB_SLAVE );
                $cache = array();
 
@@ -347,14 +347,14 @@ class MessageCache {
                $mostused = array();
                if ( $wgAdaptiveMessageCache ) {
                        $mostused = $this->getMostUsedMessages();
-                       if ( $code !== $wgContLanguageCode ) {
+                       if ( $code !== $wgLanguageCode ) {
                                foreach ( $mostused as $key => $value ) $mostused[$key] = "$value/$code";
                        }
                }
 
                if ( count( $mostused ) ) {
                        $conds['page_title'] = $mostused;
-               } elseif ( $code !== $wgContLanguageCode ) {
+               } elseif ( $code !== $wgLanguageCode ) {
                        $conds[] = 'page_title' . $dbr->buildLike( $dbr->anyString(), "/$code" );
                } else {
                        # Effectively disallows use of '/' character in NS_MEDIAWIKI for uses
@@ -534,7 +534,7 @@ class MessageCache {
         *                   "msg/lang".
         */
        function get( $key, $useDB = true, $langcode = true, $isFullKey = false ) {
-               global $wgContLanguageCode, $wgContLang;
+               global $wgLanguageCode, $wgContLang;
 
                if ( !is_string( $key ) ) {
                        throw new MWException( "Non-string key given" );
@@ -546,6 +546,10 @@ class MessageCache {
                }
 
                $lang = wfGetLangObj( $langcode );
+               if ( !$lang ) {
+                       throw new MWException( "Bad lang code $langcode given" );
+               }
+
                $langcode = $lang->getCode();
 
                $message = false;
@@ -568,7 +572,7 @@ class MessageCache {
                # Try the MediaWiki namespace
                if( !$this->mDisable && $useDB ) {
                        $title = $uckey;
-                       if(!$isFullKey && ( $langcode != $wgContLanguageCode ) ) {
+                       if(!$isFullKey && ( $langcode != $wgLanguageCode ) ) {
                                $title .= '/' . $langcode;
                        }
                        $message = $this->getMsgFromNamespace( $title, $langcode );
@@ -599,8 +603,8 @@ class MessageCache {
                # Is this a custom message? Try the default language in the db...
                if( ($message === false || $message === '-' ) &&
                        !$this->mDisable && $useDB &&
-                       !$isFullKey && ($langcode != $wgContLanguageCode) ) {
-                       $message = $this->getMsgFromNamespace( $uckey, $wgContLanguageCode );
+                       !$isFullKey && ($langcode != $wgLanguageCode) ) {
+                       $message = $this->getMsgFromNamespace( $uckey, $wgLanguageCode );
                }
 
                # Final fallback
@@ -716,6 +720,7 @@ class MessageCache {
                        $popts = $this->getParserOptions();
                        $popts->setInterfaceMessage( $interface );
                        $popts->setTargetLanguage( $language );
+                       $popts->setUserLang( $language );
                        $message = $this->mParser->transformMsg( $message, $popts );
                }
                return $message;
@@ -750,6 +755,7 @@ class MessageCache {
                        # Invalidate all local caches
                        $this->mMemc->delete( wfMemcKey( 'messages', $code, 'hash' ) );
                }
+               $this->mLoadedLanguages = array();
        }
 
        /**
@@ -811,15 +817,15 @@ class MessageCache {
        }
 
        public function figureMessage( $key ) {
-               global $wgContLanguageCode, $wgContLang;
+               global $wgLanguageCode;
                $pieces = explode( '/', $key );
                if( count( $pieces ) < 2 )
-                       return array( $key, $wgContLanguageCode );
+                       return array( $key, $wgLanguageCode );
 
                $lang = array_pop( $pieces );
                $validCodes = Language::getLanguageNames();
                if( !array_key_exists( $lang, $validCodes ) )
-                       return array( $key, $wgContLanguageCode );
+                       return array( $key, $wgLanguageCode );
 
                $message = implode( '/', $pieces );
                return array( $message, $lang );