我是使用Symfony进行翻译的初学者,因此我提供了一些捆绑包来帮助我翻译实体。
现在,我在邮递员中设置了接受语言标头,我需要返回按该语言区域设置检测到的结果。
我很累写听众。
有人可以帮忙吗
我的听众:
class LocaleListener
{
private $session;
public function setSession(Session $session)
{
$this->session = $session;
}
public function setLocale(GetResponseEvent $event)
{
if (HttpKernelInterface::MASTER_REQUEST !== $event->getRequestType()) {
return;
}
$request = $event->getRequest();
if (!$request->attributes->has('locale')) {
$request->setLocale($request->getPreferredLanguage(array('en', 'de')));
}
}
}
services.yml
listener.request:
class: App\Base\EventListener\LocaleListener
tags:
- { name: kernel.event_listener, event: kernel.request, method: setLocale }
arguments: [ "@router", "@service_container" ]
我的Api呼叫:
/**
* @Route("/translation/all", name="trans")
* @throws \Exception
*/
public function allTranslate()
{
$locale = $this->get('listener.request')->setLocale();
$thing = $this->getThingRepository()->find(1);
$repository = $this->em->getRepository('Gedmo\Translatable\Entity\Translation');
$translations = $repository->findTranslations($thing);
return $translations;
}
我完全迷路了。
我需要在这里打电话给我的监听器,以检测我在邮递员标题中发布的语言,然后通过该语言返回翻译后的数据。
我正在返回应有的结果,因此现在需要与我的侦听器建立连接。谢谢。