Я новичок в Symfony2, и я ищу язык с TLD моего имени хоста. (надлежащим образом)
Я уже нашел способ изменить язык с помощью формы: http://symfony.com/blog/play-with-the-user-language
Но мне нужно иметь возможность выбирать язык, когда новый пользователь подключается:
- www.hostname.fr = > fr
- www.hostname.it = > 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 соответствует, с каким языком, но в Listener я не могу получить доступ к контейнеру:
$this->container->getParameter('tld_allowed');
Я хотел бы знать, есть ли другой способ доступа к параметрам в слушателе Или другим способом выбрать язык с именем хоста
Спасибо за ваши ответы.