21 namespace MediaWiki\Languages;
40 use Wikimedia\ObjectFactory\ObjectFactory;
55 private $converterList = [
57 'class' => BanConverter::class,
60 'class' => CrhConverter::class,
63 'class' => GanConverter::class,
66 'class' => IuConverter::class,
69 'class' => KkConverter::class,
72 'class' => KuConverter::class,
75 'class' => ShiConverter::class,
78 'class' => ShConverter::class,
81 'class' => SrConverter::class,
84 'class' => TgConverter::class,
87 'class' => TlyConverter::class,
90 'class' => UzConverter::class,
93 'class' => ZhConverter::class,
97 private const DEFAULT_CONVERTER = [
98 'class' => TrivialLanguageConverter::class,
104 private const EN_CONVERTER = [
105 'class' => EnConverter::class,
109 private $objectFactory;
114 private $isConversionDisabled;
119 private $isTitleConversionDisabled;
124 private $defaultLanguage;
137 ObjectFactory $objectFactory,
138 $usePigLatinVariant, $isConversionDisabled, $isTitleConversionDisabled,
139 callable $defaultLanguage
141 $this->objectFactory = $objectFactory;
142 if ( $usePigLatinVariant ) {
143 $this->converterList[
'en'] = self::EN_CONVERTER;
147 $this->defaultLanguage = $defaultLanguage;
157 $code = mb_strtolower(
$lang->getCode() );
158 $spec = $this->converterList[$code] ?? self::DEFAULT_CONVERTER;
161 return $this->objectFactory->createObject(
164 'assertClass' => ILanguageConverter::class,
165 'extraArgs' => [
$lang ],
180 $lang = $language ?? ( $this->defaultLanguage )();
181 if ( isset( $this->cache[
$lang->getCode()] ) ) {
182 return $this->cache[
$lang->getCode()];
185 $converter = $this->instantiateConverter(
$lang );
186 $this->cache[
$lang->getCode()] = $converter;
195 return $this->isConversionDisabled;
205 return $this->isTitleConversionDisabled;
213 return $this->isConversionDisabled || $this->isTitleConversionDisabled;
wfDeprecated( $function, $version=false, $component=false, $callerOffset=2)
Logs a warning that a deprecated feature was used.
Crimean Tatar (Qırımtatarca) converter routines.
English specific converter routines.
Gan Chinese specific code.
Kazakh (Қазақша) converter routines.
Kurdish converter routines.
Base class for language-specific code.
Converts Serbo-Croatian from Latin script to Cyrillic script.
Serbian (Српски / Srpski) specific code.
Tajik (Тоҷикӣ) specific code, converting Tajiki to Latin orthography.
A trivial language converter.
Chinese converter routine.
The shared interface for all language converters.
if(!isset( $args[0])) $lang