X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguageConverter.php;h=787930907ec043bc46f6f3a62b60cd3885c83f2c;hb=ca38682dda7348bde8f4ad0ef64c782c7c928427;hp=43d6063d91da7bef0ebe5a7faae0991e29c12ca5;hpb=77e1b851dd3611cf6ce8f8771f47717907513c45;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/LanguageConverter.php b/languages/LanguageConverter.php index 43d6063d91..787930907e 100644 --- a/languages/LanguageConverter.php +++ b/languages/LanguageConverter.php @@ -355,12 +355,7 @@ class LanguageConverter { 2. HTML entities 3. placeholders created by the parser */ - global $wgParser; - if ( isset( $wgParser ) && $wgParser->UniqPrefix() != '' ) { - $marker = '|' . $wgParser->UniqPrefix() . '[\-a-zA-Z0-9]+'; - } else { - $marker = ''; - } + $marker = '|' . Parser::MARKER_PREFIX . '[\-a-zA-Z0-9]+'; // this one is needed when the text is inside an HTML markup $htmlfix = '|<[^>]+$|^[^<>]*>'; @@ -507,13 +502,9 @@ class LanguageConverter { } if ( $action == 'add' ) { + // More efficient than array_merge(), about 2.5 times. foreach ( $pair as $from => $to ) { - // to ensure that $from and $to not be left blank - // so $this->translate() could always return a string - if ( $from || $to ) { - // more efficient than array_merge(), about 2.5 times. - $this->mTables[$variant]->setPair( $from, $to ); - } + $this->mTables[$variant]->setPair( $from, $to ); } } elseif ( $action == 'remove' ) { $this->mTables[$variant]->removeArray( $pair ); @@ -842,7 +833,7 @@ class LanguageConverter { * @param bool $fromCache Load from memcached? Defaults to true. */ function loadTables( $fromCache = true ) { - global $wgLangConvMemc; + global $wgLanguageConverterCacheType; if ( $this->mTablesLoaded ) { return; @@ -850,9 +841,10 @@ class LanguageConverter { $this->mTablesLoaded = true; $this->mTables = false; + $cache = ObjectCache::getInstance( $wgLanguageConverterCacheType ); if ( $fromCache ) { wfProfileIn( __METHOD__ . '-cache' ); - $this->mTables = $wgLangConvMemc->get( $this->mCacheKey ); + $this->mTables = $cache->get( $this->mCacheKey ); wfProfileOut( __METHOD__ . '-cache' ); } if ( !$this->mTables || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) { @@ -869,7 +861,7 @@ class LanguageConverter { $this->postLoadTables(); $this->mTables[self::CACHE_VERSION_KEY] = true; - $wgLangConvMemc->set( $this->mCacheKey, $this->mTables, 43200 ); + $cache->set( $this->mCacheKey, $this->mTables, 43200 ); wfProfileOut( __METHOD__ . '-recache' ); } } @@ -1000,7 +992,7 @@ class LanguageConverter { if ( $recursive ) { foreach ( $sublinks as $link ) { $s = $this->parseCachedTable( $code, $link, $recursive ); - $ret = array_merge( $ret, $s ); + $ret = $s + $ret; } }