logo       

[MediaWiki-CVS] SVN: [54117] trunk/extensions/Translate: msg#01495

mediawiki-cvs

Subject: [MediaWiki-CVS] SVN: [54117] trunk/extensions/Translate

http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54117

Revision: 54117
Author: nikerabbit
Date: 2009-07-31 18:58:10 +0000 (Fri, 31 Jul 2009)

Log Message:
-----------
* Bugfix in mangler construction
* messageKeyToGroup was deadslow - no idea why, but now it is fast again

Modified Paths:
--------------
trunk/extensions/Translate/Stats.php
trunk/extensions/Translate/TranslateUtils.php
trunk/extensions/Translate/utils/StringMatcher.php

Modified: trunk/extensions/Translate/Stats.php
===================================================================
--- trunk/extensions/Translate/Stats.php 2009-07-31 18:53:46 UTC (rev
54116)
+++ trunk/extensions/Translate/Stats.php 2009-07-31 18:58:10 UTC (rev
54117)
@@ -448,7 +448,7 @@

if ( $this->filters['group'] ) {
$group = TranslateUtils::messageKeyToGroup(
$row->rc_namespace, $key );
- if ( $group === null ) return - 1;
+ if ( $group === null ) return -1;
$indexKey .= $group;
}


Modified: trunk/extensions/Translate/TranslateUtils.php
===================================================================
--- trunk/extensions/Translate/TranslateUtils.php 2009-07-31 18:53:46 UTC
(rev 54116)
+++ trunk/extensions/Translate/TranslateUtils.php 2009-07-31 18:58:10 UTC
(rev 54117)
@@ -167,18 +167,28 @@
return $selector->getHTML();
}

+ static $mi = null;
+
public static function messageKeyToGroup( $namespace, $key ) {
- $normkey = self::normaliseKey( $namespace, $key );
- $index = self::messageIndex();
- $group = @$index[$normkey];
+ if ( self::$mi === null ) self::messageIndex();
+
+ # Performance hotspot
+ #$normkey = self::normaliseKey( $namespace, $key );
+ $normkey = str_replace( " ", "_", strtolower( "$namespace:$key"
) );
+
+ $group = @self::$mi[$normkey];
if ( is_array($group) ) $group = $group[0];
return $group;
}

public static function messageKeyToGroups( $namespace, $key ) {
- $normkey = self::normaliseKey( $namespace, $key );
- $index = self::messageIndex();
- return (array) @$index[$normkey];
+ if ( self::$mi === null ) self::messageIndex();
+
+ # Performance hotspot
+ #$normkey = self::normaliseKey( $namespace, $key );
+ $normkey = str_replace( " ", "_", strtolower( "$namespace:$key"
) );
+
+ return (array) @self::$mi[$normkey];
}

public static function normaliseKey( $namespace, $key ) {
@@ -186,9 +196,6 @@
}

public static function messageIndex() {
- static $keyToGroup = null;
- if ( $keyToGroup !== null ) return $keyToGroup;
-
global $wgCacheDirectory;
$filename = "$wgCacheDirectory/translate_messageindex.cdb";
if ( !file_exists($filename) ) MessageIndexRebuilder::execute();
@@ -201,6 +208,7 @@
wfDebug( __METHOD__ . ": Message index missing." );
}

+ self::$mi = $keyToGroup;
return $keyToGroup;
}


Modified: trunk/extensions/Translate/utils/StringMatcher.php
===================================================================
--- trunk/extensions/Translate/utils/StringMatcher.php 2009-07-31 18:53:46 UTC
(rev 54116)
+++ trunk/extensions/Translate/utils/StringMatcher.php 2009-07-31 18:58:10 UTC
(rev 54117)
@@ -17,10 +17,10 @@
protected $aRegex = array();

public static function EmptyMatcher() {
- return new StringMatcher( '', array() );
+ return new StringMatcher;
}

- public function __construct( $prefix, $patterns = array() ) {
+ public function __construct( $prefix = '', $patterns = array() ) {
$this->sPrefix = $prefix;
$this->init( $patterns );
}



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@xxxxxxxxxxxxxxxxxxx
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | Mail Home | sitemap | FAQ | advertise