2013-02-20 3 views
0

브라우저가 자동으로 독일어로 갈 수있는 방법은 de_DE 또는 de (독일어), 다른 언어는 영어 (다른 모든 브라우저는 언어 수락)로 이동합니까?수락 언어 헤더에 따라 Symfony 2.1에서 언어를 번역하는 방법은 무엇입니까?

내 청취자

namespace xxxx 
use Symfony\Component\DependencyInjection\ContainerInterface; 

use Symfony\Component\HttpKernel\HttpKernelInterface; 
use Symfony\Component\HttpKernel\Event\GetResponseEvent; 

class LocaleListener 
{ 
    private $container; 
    private $defaultLocale; 

    public function __construct(ContainerInterface $container, $defaultLocale) 
    { 
     $this->container = $container; 
     $this->defaultLocale = $defaultLocale; 
    } 

    public function onKernelRequest(GetResponseEvent $event) 
    { 
     if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) { 
      return; 
     } 

     if (!$this->container->has('request')) { 
      return; 
     } 

     $request = $this->container->get('request'); 
     $request->setLocale($request->getPreferredLanguage($this->defaultLocale)); 
    } 
} 

service.yml

my_locale_listener: 
    class: Wishbot\WebBundle\Listener\LocaleListener 
    tags: [{ name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 100 }] 
    arguments: [ @service_container, ['de','en' ] ] 

답변