Sono nuovo in Symfony2 e sto cercando di scegliere la lingua con il TLD del mio nome host. (in modo corretto)Symfony2 Language per TLD
ho già trovare un modo per cambiare la lingua con un modulo: http://symfony.com/blog/play-with-the-user-language
ma ho bisogno di essere in grado di selezionare la lingua quando un nuovo utente si collega con:
- www.hostname.fr => fr
- www.hostname.it => it
- www.hostname.co.uk => it
Per ora aggiungo un listener del servizio che si innescano per ogni richiesta:
services:
kernel.listener.domain_langue_listener:
class: acme\DemoBundle\Listener\DomainLangueListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: onDomainParse }
Con la classe:
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]);
}
}
questo listener funziona, ma vorrei utilizzare alcuni parametri per definire quali corrispondenza TLD con che lingua, ma in chi ascolta non posso accedere al contenitore così:
$this->container->getParameter('tld_allowed');
Vorrei sapere se c'è un altro modo per accedere ai parametri in un listener o un altro modo per selezionare una lingua con il nome host
Grazie per le vostre risposte.