* @file
* @ingroup Language
*/
+use MediaWiki\MediaWikiServices;
/**
* Base class for language conversion.
];
public $mMainLanguageCode;
- public $mVariants, $mVariantFallbacks, $mVariantNames;
+ public $mVariants;
+ public $mVariantFallbacks;
+ public $mVariantNames;
public $mTablesLoaded = false;
public $mTables;
// 'bidirectional' 'unidirectional' 'disable' for each variant
$req = $this->getURLVariant();
- if ( $wgUser->isLoggedIn() && !$req ) {
+ if ( $wgUser->isSafeToLoad() && $wgUser->isLoggedIn() && !$req ) {
$req = $this->getUserVariant();
} elseif ( !$req ) {
$req = $this->getHeaderVariant();
// Get language variant preference from logged in users
// Don't call this on stub objects because that causes infinite
// recursion during initialisation
+ if ( !$wgUser->isSafeToLoad() ) {
+ return false;
+ }
if ( $wgUser->isLoggedIn() ) {
if ( $this->mMainLanguageCode == $wgContLang->getCode() ) {
$ret = $wgUser->getOption( 'variant' );
$variant = $this->getPreferredVariant();
}
- $cache = ObjectCache::newAccelerator( CACHE_NONE );
- $key = wfMemcKey( 'languageconverter', 'namespace-text', $index, $variant );
+ $cache = MediaWikiServices::getInstance()->getLocalServerObjectCache();
+ $key = $cache->makeKey( 'languageconverter', 'namespace-text', $index, $variant );
$nsVariantText = $cache->get( $key );
if ( $nsVariantText !== false ) {
return $nsVariantText;
// -{zh-hans:<span style="font-size:120%;">xxx</span>;zh-hant:\
// <span style="font-size:120%;">yyy</span>;}-
// we should split it as:
- // array(
+ // [
// [0] => 'zh-hans:<span style="font-size:120%;">xxx</span>'
// [1] => 'zh-hant:<span style="font-size:120%;">yyy</span>'
// [2] => ''
- // )
+ // ]
$pat = '/;\s*(?=';
foreach ( $this->mVariants as $variant ) {
// zh-hans:xxx;zh-hant:yyy