28use Wikimedia\ObjectFactory\ObjectFactory;
44 private $converterList = [
46 'class' => BanConverter::class,
49 'class' => CrhConverter::class,
52 'class' => GanConverter::class,
55 'class' => IuConverter::class,
58 'class' => KuConverter::class,
61 'class' => MniConverter::class,
64 'class' => ShConverter::class,
67 'class' => ShiConverter::class,
70 'class' => SrConverter::class,
73 'class' => TgConverter::class,
76 'class' => TlyConverter::class,
79 'class' => UzConverter::class,
82 'class' => WuuConverter::class,
85 'class' => ZghConverter::class,
88 'class' => ZhConverter::class,
92 private const DEFAULT_CONVERTER = [
93 'class' => TrivialLanguageConverter::class,
99 private const EN_CONVERTER = [
100 'class' => EnConverter::class,
113 private ObjectFactory $objectFactory;
118 private $defaultLanguage;
130 ObjectFactory $objectFactory,
131 callable $defaultLanguage
134 $this->options = $options;
135 $this->objectFactory = $objectFactory;
137 $this->converterList[
'en'] = self::EN_CONVERTER;
139 $this->defaultLanguage = $defaultLanguage;
149 $code = mb_strtolower( $lang->getCode() );
150 $spec = $this->converterList[$code] ?? self::DEFAULT_CONVERTER;
151 return $this->objectFactory->createObject(
154 'assertClass' => ILanguageConverter::class,
155 'extraArgs' => [ $lang ],
170 $lang = $language ?? ( $this->defaultLanguage )();
171 if ( isset( $this->cache[$lang->getCode()] ) ) {
172 return $this->cache[$lang->getCode()];
175 $converter = $this->instantiateConverter( $lang );
176 $this->cache[$lang->getCode()] = $converter;
186 return $this->options->get( MainConfigNames::DisableLangConversion );
195 return $this->options->get( MainConfigNames::DisableLangConversion ) ||
197 $this->options->get( MainConfigNames::DisableTitleConversion );
202class_alias( LanguageConverterFactory::class,
'MediaWiki\\Languages\\LanguageConverterFactory' );
A class containing constants representing the names of configuration variables.
const UsePigLatinVariant
Name constant for the UsePigLatinVariant setting, for use with Config::get()
const DisableLangConversion
Name constant for the DisableLangConversion setting, for use with Config::get()
const DisableTitleConversion
Name constant for the DisableTitleConversion setting, for use with Config::get()