X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=languages%2FLanguage.php;h=472871fc89be65c0b628b937d15627d2262c3a74;hb=a8f11c4001beb705bc56c0b7e127865af3afb3b4;hp=1edca804691f41e9007e759cc99d72aaf0138ef6;hpb=40f85ac347a6edf38b82896ebf97da4b786eb3a0;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/Language.php b/languages/Language.php index 1edca80469..472871fc89 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -419,6 +419,16 @@ class Language { */ public function setNamespaces( array $namespaces ) { $this->namespaceNames = $namespaces; + $this->mNamespaceIds = null; + } + + /** + * Resets all of the namespace caches. Mainly used for testing + */ + public function resetNamespaces( ) { + $this->namespaceNames = null; + $this->mNamespaceIds = null; + $this->namespaceAliases = null; } /** @@ -3005,7 +3015,7 @@ class Language { function listToText( array $l ) { $s = ''; $m = count( $l ) - 1; - + if ( $m === 0 ) { return $l[0]; } elseif ( $m === 1 ) { @@ -4187,7 +4197,17 @@ class Language { * @return array Associative array with plural form, and plural rule as key-value pairs */ public function getCompiledPluralRules() { - return self::$dataCache->getItem( strtolower( $this->mCode ), 'compiledPluralRules' ); + $pluralRules = self::$dataCache->getItem( strtolower( $this->mCode ), 'compiledPluralRules' ); + $fallbacks = Language::getFallbacksFor( $this->mCode ); + if ( !$pluralRules ) { + foreach ( $fallbacks as $fallbackCode ) { + $pluralRules = self::$dataCache->getItem( strtolower( $fallbackCode ), 'compiledPluralRules' ); + if ( $pluralRules ) { + break; + } + } + } + return $pluralRules; } /** @@ -4196,7 +4216,17 @@ class Language { * @return array Associative array with plural form, and plural rule as key-value pairs */ public function getPluralRules() { - return self::$dataCache->getItem( strtolower( $this->mCode ), 'pluralRules' ); + $pluralRules = self::$dataCache->getItem( strtolower( $this->mCode ), 'pluralRules' ); + $fallbacks = Language::getFallbacksFor( $this->mCode ); + if ( !$pluralRules ) { + foreach ( $fallbacks as $fallbackCode ) { + $pluralRules = self::$dataCache->getItem( strtolower( $fallbackCode ), 'pluralRules' ); + if ( $pluralRules ) { + break; + } + } + } + return $pluralRules; } /**