From: Alexandre Emsenhuber Date: Wed, 7 Jan 2009 20:20:16 +0000 (+0000) Subject: Fix for r45512: cache the result of LanguageGetLocalizedLanguageNames hook so that... X-Git-Tag: 1.31.0-rc.0~43511 X-Git-Url: http://git.heureux-cyclage.org/?a=commitdiff_plain;h=93b19daad88e427185d19a6b1db70679e04ab5dc;p=lhc%2Fweb%2Fwiklou.git Fix for r45512: cache the result of LanguageGetLocalizedLanguageNames hook so that it's only run once --- diff --git a/languages/Language.php b/languages/Language.php index eaec2b671e..dae3952e33 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -55,6 +55,7 @@ class FakeConverter { class Language { var $mConverter, $mVariants, $mCode, $mLoaded = false; var $mMagicExtensions = array(), $mMagicHookDone = false; + var $mLocalizedLanguagesNames = null; static public $mLocalisationKeys = array( 'fallback', 'namespaceNames', 'mathNames', 'bookstoreList', @@ -409,6 +410,19 @@ class Language { return $names; } + /** + * Get localized language names + * + * @return array + */ + function getLocalizedLanguageNames() { + if( !is_array( $this->mLocalizedLanguagesNames ) ) { + $this->mLocalizedLanguagesNames = array(); + wfRunHooks( 'LanguageGetLocalizedLanguageNames', array( &$this->mLocalizedLanguagesNames, $this->getCode() ) ); + } + return $this->mLocalizedLanguagesNames; + } + /** * Get a message from the MediaWiki namespace. * @@ -431,8 +445,7 @@ class Language { return ''; } if( $localized ) { - $languageNames = array(); - wfRunHooks( 'LanguageGetLocalizedLanguageNames', array( &$languageNames, $this->getCode() ) ); + $languageNames = $this->getLocalizedLanguageNames(); return isset( $languageNames[$code] ) ? $languageNames[$code] : $names[$code]; } else { return $names[$code];