public function loadConfiguration()
{
$this->loaders = [];
$builder = $this->getContainerBuilder();
$config = $this->getConfig();
$translator = $builder->addDefinition($this->prefix('default'))->setClass('Kdyby\\Translation\\Translator', [$this->prefix('@userLocaleResolver')])->addSetup('?->setTranslator(?)', [$this->prefix('@userLocaleResolver.param'), '@self'])->addSetup('setDefaultLocale', [$config['default']])->addSetup('setLocaleWhitelist', [$config['whitelist']])->setInject(FALSE);
Validators::assertField($config, 'fallback', 'list');
$translator->addSetup('setFallbackLocales', [$config['fallback']]);
$catalogueCompiler = $builder->addDefinition($this->prefix('catalogueCompiler'))->setClass('Kdyby\\Translation\\CatalogueCompiler', self::filterArgs($config['cache']))->setInject(FALSE);
if ($config['debugger'] && interface_exists('Tracy\\IBarPanel')) {
$builder->addDefinition($this->prefix('panel'))->setClass('Kdyby\\Translation\\Diagnostics\\Panel', [dirname($builder->expand('%appDir%'))])->addSetup('setLocaleWhitelist', [$config['whitelist']]);
$translator->addSetup('?->register(?)', [$this->prefix('@panel'), '@self']);
$catalogueCompiler->addSetup('enableDebugMode');
}
$this->loadLocaleResolver($config);
$builder->addDefinition($this->prefix('helpers'))->setClass('Kdyby\\Translation\\TemplateHelpers')->setFactory($this->prefix('@default') . '::createTemplateHelpers')->setInject(FALSE);
$builder->addDefinition($this->prefix('fallbackResolver'))->setClass('Kdyby\\Translation\\FallbackResolver')->setInject(FALSE);
$builder->addDefinition($this->prefix('catalogueFactory'))->setClass('Kdyby\\Translation\\CatalogueFactory')->setInject(FALSE);
$builder->addDefinition($this->prefix('selector'))->setClass('Symfony\\Component\\Translation\\MessageSelector')->setInject(FALSE);
$builder->addDefinition($this->prefix('extractor'))->setClass('Symfony\\Component\\Translation\\Extractor\\ChainExtractor')->setInject(FALSE);
$this->loadExtractors();
$builder->addDefinition($this->prefix('writer'))->setClass('Symfony\\Component\\Translation\\Writer\\TranslationWriter')->setInject(FALSE);
$this->loadDumpers();
$builder->addDefinition($this->prefix('loader'))->setClass('Kdyby\\Translation\\TranslationLoader')->setInject(FALSE);
$loaders = $this->loadFromFile(__DIR__ . '/config/loaders.neon');
$this->loadLoaders($loaders, $config['loaders'] ?: array_keys($loaders));
if ($this->isRegisteredConsoleExtension()) {
$this->loadConsole($config);
}
}