* @var array
*/
static public $languagesWithVariants = [
+ 'en',
'gan',
'iu',
'kk',
];
public $mMainLanguageCode;
+
+ /**
+ * @var string[]
+ */
public $mVariants;
public $mVariantFallbacks;
public $mVariantNames;
// 'bidirectional' 'unidirectional' 'disable' for each variant
public $mManualLevel;
- /**
- * @var string Memcached key name
- */
- public $mCacheKey;
-
public $mLangObj;
public $mFlags;
public $mDescCodeSep = ':', $mDescVarSep = ';';
const CACHE_VERSION_KEY = 'VERSION 7';
/**
- * Constructor
- *
* @param Language $langobj
* @param string $maincode The main language code of this language
- * @param array $variants The supported variants of this language
+ * @param string[] $variants The supported variants of this language
* @param array $variantfallbacks The fallback language of each variant
* @param array $flags Defining the custom strings that maps to the flags
* @param array $manualLevel Limit for supported variants
$this->mVariants = array_diff( $variants, $wgDisabledVariants );
$this->mVariantFallbacks = $variantfallbacks;
$this->mVariantNames = Language::fetchLanguageNames();
- $this->mCacheKey = wfMemcKey( 'conversiontables', $maincode );
$defaultflags = [
// 'S' show converted text
// '+' add rules for alltext
* Get all valid variants.
* Call this instead of using $this->mVariants directly.
*
- * @return array Contains all valid variants
+ * @return string[] Contains all valid variants
*/
public function getVariants() {
return $this->mVariants;
$this->mTablesLoaded = true;
$this->mTables = false;
$cache = ObjectCache::getInstance( $wgLanguageConverterCacheType );
+ $cacheKey = $cache->makeKey( 'conversiontables', $this->mMainLanguageCode );
if ( $fromCache ) {
- $this->mTables = $cache->get( $this->mCacheKey );
+ $this->mTables = $cache->get( $cacheKey );
}
if ( !$this->mTables || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) {
// not in cache, or we need a fresh reload.
$this->postLoadTables();
$this->mTables[self::CACHE_VERSION_KEY] = true;
- $cache->set( $this->mCacheKey, $this->mTables, 43200 );
+ $cache->set( $cacheKey, $this->mTables, 43200 );
}
}
/**
* Reload the conversion tables.
*
+ * Also used by test suites which need to reset the converter state.
+ *
* @private
*/
- function reloadTables() {
+ private function reloadTables() {
if ( $this->mTables ) {
unset( $this->mTables );
}