protected function loadLocaleResolver(array $config)
{
$builder = $this->getContainerBuilder();
$builder->addDefinition($this->prefix('userLocaleResolver.param'))->setClass('Kdyby\\Translation\\LocaleResolver\\LocaleParamResolver')->setAutowired(FALSE)->setInject(FALSE);
$builder->addDefinition($this->prefix('userLocaleResolver.acceptHeader'))->setClass('Kdyby\\Translation\\LocaleResolver\\AcceptHeaderResolver')->setInject(FALSE);
$builder->addDefinition($this->prefix('userLocaleResolver.session'))->setClass('Kdyby\\Translation\\LocaleResolver\\SessionResolver')->setInject(FALSE);
$chain = $builder->addDefinition($this->prefix('userLocaleResolver'))->setClass('Kdyby\\Translation\\IUserLocaleResolver')->setFactory('Kdyby\\Translation\\LocaleResolver\\ChainResolver')->setInject(FALSE);
$resolvers = [];
if ($config['resolvers'][self::RESOLVER_HEADER]) {
$resolvers[] = $this->prefix('@userLocaleResolver.acceptHeader');
$chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.acceptHeader')]);
}
if ($config['resolvers'][self::RESOLVER_REQUEST]) {
$resolvers[] = $this->prefix('@userLocaleResolver.param');
$chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.param')]);
}
if ($config['resolvers'][self::RESOLVER_SESSION]) {
$resolvers[] = $this->prefix('@userLocaleResolver.session');
$chain->addSetup('addResolver', [$this->prefix('@userLocaleResolver.session')]);
}
if ($config['debugger'] && interface_exists('Tracy\\IBarPanel')) {
$builder->getDefinition($this->prefix('panel'))->addSetup('setLocaleResolvers', [array_reverse($resolvers)]);
}
}