Я новичок в Symfony2, и я ищу, чтобы выбрать язык с TLD моего имени хоста.
(правильно)
Я уже нахожу способ изменить язык с помощью формы: http://symfony.com/blog/play-with-the-user-language
Но мне нужно иметь возможность выбирать язык при подключении нового пользователя:
- www.hostname.fr => fr
- www.hostname.it => это
- www.hostname.co.uk => ru
Пока я добавляю прослушиватель службы, который запускается для каждого запроса:
services:
kernel.listener.domain_langue_listener:
class: acme\DemoBundle\Listener\DomainLangueListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
С классом:
namespace acme\DemoBundle\Listener;
class DomainLangueListener
{
public function onDomainParse(Event $event)
{
$request = $event->getRequest();
$session = $request->getSession();
preg_match('/[^.]+$/', $request->getHost(), $match);
$session->setLocale($match[0]);
}
}
Этот слушатель работает, но я хотел бы использовать некоторые параметры, чтобы определить, какой TLD соответствует какому языку, но в слушателе я не могу получить доступ к контейнеру следующим образом:
$this->container->getParameter('tld_allowed');
Я хотел бы знать, есть ли другой способ доступа к параметрам в слушателе
Или другой способ выбрать язык с именем хоста
Спасибо за ваши ответы.