- $this->mTables = $wgMemc->get( $this->mCacheKey );
- if( empty( $this->mTables ) ) {
- global $wgMessageCache;
- require( "includes/ZhConversion.php" );
- $this->mTables = array();
- $this->mTables['zh-cn'] = $zh2CN;
- $this->mTables['zh-tw'] = $zh2TW;
- $this->mTables['zh-sg'] = $zh2SG;
- $this->mTables['zh-hk'] = $zh2HK;
- if( is_object( $wgMessageCache ) ){
- $cached = $this->parseCachedTable( $wgMessageCache->get( 'zhconversiontable/zh-cn', true, true, true ) );
- $this->mTables['zh-cn'] = array_merge($this->mTables['zh-cn'], $cached);
-
- $cached = $this->parseCachedTable( $wgMessageCache->get( 'zhconversiontable/zh-tw', true, true, true ) );
- $this->mTables['zh-tw'] = array_merge($this->mTables['zh-tw'], $cached);
-
- $cached = $this->parseCachedTable( $wgMessageCache->get( 'zhconversiontable/zh-sg', true, true, true ) );
- $this->mTables['zh-sg'] = array_merge($this->mTables['zh-sg'], $cached);
-
- $cached = $this->parseCachedTable( $wgMessageCache->get( 'zhconversiontable/zh-hk', true, true, true ) );
- $this->mTables['zh-hk'] = array_merge($this->mTables['zh-hk'], $cached);
-
- }
+ if($fromcache) {
+ $this->mTables = $wgMemc->get( $this->mCacheKey );
+ if( !empty( $this->mTables ) ) //all done
+ return;
+ }
+ // not in cache, or we need a fresh reload.
+ // we will first load the tables from file
+ // then update them using things in MediaWiki:Zhconversiontable/*
+ global $wgMessageCache;
+ require( "includes/ZhConversion.php" );
+ $this->mTables = array();
+ $this->mTables['zh-cn'] = $zh2CN;
+ $this->mTables['zh-tw'] = $zh2TW;
+ $this->mTables['zh-sg'] = array_merge($zh2CN, $zh2SG);
+ $this->mTables['zh-hk'] = array_merge($zh2TW, $zh2HK);
+
+ $cached = $this->parseCachedTable('zh-cn');
+ $this->mTables['zh-cn'] = array_merge($this->mTables['zh-cn'], $cached);
+
+ $cached = $this->parseCachedTable('zh-tw');
+ $this->mTables['zh-tw'] = array_merge($this->mTables['zh-tw'], $cached);
+
+ $cached = $this->parseCachedTable('zh-sg');
+ $this->mTables['zh-sg'] = array_merge($this->mTables['zh-sg'], $cached);
+
+ $cached = $this->parseCachedTable('zh-hk');
+ $this->mTables['zh-hk'] = array_merge($this->mTables['zh-hk'], $cached);
+ if($this->lockCache()) {