/** @var bool */
private $mFound = false;
+ /** @var Language */
+ private $contLang;
+
/**#@-*/
/**
* @param string|null $id The internal name of the magic word
* @param string[]|string $syn synonyms for the magic word
* @param bool $cs If magic word is case sensitive
+ * @param Language|null $contLang Content language
*/
- public function __construct( $id = null, $syn = [], $cs = false ) {
+ public function __construct( $id = null, $syn = [], $cs = false, Language $contLang = null ) {
$this->mId = $id;
$this->mSynonyms = (array)$syn;
$this->mCaseSensitive = $cs;
+ $this->contLang = $contLang;
+
+ if ( !$contLang ) {
+ $this->contLang = MediaWikiServices::getInstance()->getContentLanguage();
+ }
}
/**
* @throws MWException
*/
public function load( $id ) {
- global $wgContLang;
$this->mId = $id;
- $wgContLang->getMagic( $this );
+ $this->contLang->getMagic( $this );
if ( !$this->mSynonyms ) {
$this->mSynonyms = [ 'brionmademeputthishere' ];
throw new MWException( "Error: invalid magic word '$id'" );
* @param string $value
*/
public function addToArray( &$array, $value ) {
- global $wgContLang;
foreach ( $this->mSynonyms as $syn ) {
- $array[$wgContLang->lc( $syn )] = $value;
+ $array[$this->contLang->lc( $syn )] = $value;
}
}
*/
public function getHash() {
if ( is_null( $this->hash ) ) {
- global $wgContLang;
$this->hash = [ 0 => [], 1 => [] ];
foreach ( $this->names as $name ) {
$magic = $this->factory->get( $name );
$case = intval( $magic->isCaseSensitive() );
foreach ( $magic->getSynonyms() as $syn ) {
if ( !$case ) {
- $syn = $wgContLang->lc( $syn );
+ $syn = $this->factory->getContentLanguage()->lc( $syn );
}
$this->hash[$case][$syn] = $name;
}
if ( isset( $hash[1][$text] ) ) {
return $hash[1][$text];
}
- global $wgContLang;
- $lc = $wgContLang->lc( $text );
+ $lc = $this->factory->getContentLanguage()->lc( $text );
if ( isset( $hash[0][$lc] ) ) {
return $hash[0][$lc];
}
/** @var MagicWordArray */
private $mDoubleUnderscoreArray = null;
+ /** @var Language */
+ private $contLang;
+
/**#@-*/
+ /**
+ * @param Language $contLang Content language
+ */
+ public function __construct( Language $contLang ) {
+ $this->contLang = $contLang;
+ }
+
+ public function getContentLanguage() {
+ return $this->contLang;
+ }
+
/**
* Factory: creates an object representing an ID
*
*/
public function get( $id ) {
if ( !isset( $this->mObjects[$id] ) ) {
- $mw = new MagicWord();
+ $mw = new MagicWord( null, [], false, $this->contLang );
$mw->load( $id );
$this->mObjects[$id] = $mw;
}