From 61633a942be6f03e09bafe007af154a64e81dd0b Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 12 Nov 2008 00:11:10 +0000 Subject: [PATCH] Fixed fallback feature broken by r43398. --- languages/Language.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) 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; } -- 2.20.1