From: Tim Starling Date: Wed, 12 Nov 2008 00:11:10 +0000 (+0000) Subject: Fixed fallback feature broken by r43398. X-Git-Tag: 1.31.0-rc.0~44369 X-Git-Url: http://git.cyclocoop.org//%27http:/code.google.com/p/ie7-js//%27?a=commitdiff_plain;h=61633a942be6f03e09bafe007af154a64e81dd0b;p=lhc%2Fweb%2Fwiklou.git Fixed fallback feature broken by r43398. --- diff --git a/languages/Language.php b/languages/Language.php index 4386a42129..375cc2d316 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -131,16 +131,21 @@ class Language { ); /** - * Get a language object for a given language code + * Get a cached language object for a given language code */ static function factory( $code ) { - global $IP; - static $recursionLevel = 0; - - if ( isset( self::$mLangObjCache[$code] ) ) { - return self::$mLangObjCache[$code]; + if ( !isset( self::$mLangObjCache[$code] ) ) { + self::$mLangObjCache[$code] = self::newFromCode( $code ); } + return self::$mLangObjCache[$code]; + } + /** + * Create a language object for a given language code + */ + protected static function newFromCode( $code ) { + global $IP; + static $recursionLevel = 0; if ( $code == 'en' ) { $class = 'Language'; } else { @@ -161,14 +166,12 @@ class Language { if( ! class_exists( $class ) ) { $fallback = Language::getFallbackFor( $code ); ++$recursionLevel; - $lang = Language::factory( $fallback ); + $lang = Language::newFromCode( $fallback ); --$recursionLevel; $lang->setCode( $code ); } else { $lang = new $class; } - - self::$mLangObjCache[$code] = $lang; return $lang; }