/**
* @var Language
*/
- var $mLang;
+ public $mLang;
function __construct( $langobj ) { $this->mLang = $langobj; }
function autoConvertToAllVariants( $text ) { return array( $this->mLang->getCode() => $text ); }
function convert( $t ) { return $t; }
function convertTo( $text, $variant ) { return $text; }
function convertTitle( $t ) { return $t->getPrefixedText(); }
+ function convertNamespace( $ns ) { return $this->mLang->getFormattedNsText( $ns ); }
function getVariants() { return array( $this->mLang->getCode() ); }
function getPreferredVariant() { return $this->mLang->getCode(); }
function getDefaultVariant() { return $this->mLang->getCode(); }
/**
* @var LanguageConverter
*/
- var $mConverter;
+ public $mConverter;
- var $mVariants, $mCode, $mLoaded = false;
- var $mMagicExtensions = array(), $mMagicHookDone = false;
+ public $mVariants, $mCode, $mLoaded = false;
+ public $mMagicExtensions = array(), $mMagicHookDone = false;
private $mHtmlCode = null;
- var $dateFormatStrings = array();
- var $mExtendedSpecialPageAliases;
+ public $dateFormatStrings = array();
+ public $mExtendedSpecialPageAliases;
protected $namespaceNames, $mNamespaceIds, $namespaceAliases;
/**
* ReplacementArray object caches
*/
- var $transformData = array();
+ public $transformData = array();
/**
* @var LocalisationCache
* @deprecated in 1.19
*/
function getFallbackLanguageCode() {
- wfDeprecated( __METHOD__ );
+ wfDeprecated( __METHOD__, '1.19' );
return self::getFallbackFor( $this->mCode );
}
*/
public function setNamespaces( array $namespaces ) {
$this->namespaceNames = $namespaces;
+ $this->mNamespaceIds = null;
+ }
+
+ /**
+ * Resets all of the namespace caches. Mainly used for testing
+ */
+ public function resetNamespaces( ) {
+ $this->namespaceNames = null;
+ $this->mNamespaceIds = null;
+ $this->namespaceAliases = null;
}
/**
if ( !count( $forms ) ) {
return '';
}
+
+ // Handle explicit 0= and 1= forms
+ foreach ( $forms as $index => $form ) {
+ if ( isset( $form[1] ) && $form[1] === '=' ) {
+ if ( $form[0] === (string) $count ) {
+ return substr( $form, 2 );
+ }
+ unset( $forms[$index] );
+ }
+ }
+ $forms = array_values( $forms );
+
$pluralForm = $this->getPluralForm( $count );
$pluralForm = min( $pluralForm, count( $forms ) - 1 );
return $forms[$pluralForm];
return $this->mConverter->convertTitle( $title );
}
+ /**
+ * Convert a namespace index to a string in the preferred variant
+ *
+ * @param $ns int
+ * @return string
+ */
+ public function convertNamespace( $ns ) {
+ return $this->mConverter->convertNamespace( $ns );
+ }
+
/**
* Check if this is a language with variants
*