Я довольно новичок в переводах в Symfony, поэтому я включил несколько пакетов, чтобы помочь мне переводить сущности.
Теперь я установил Accept-Language Header в своем почтальоне, и мне нужно вернуть результаты, обнаруженные по локали на этом языке.
Мне надоело писать слушателю.
Может кто-нибудь помочь.
Мой слушатель:
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 Call:
/**
* @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;
}
Я полностью потерян.
Мне нужно вызвать моего слушателя, чтобы определить язык, который я разместил в заголовке почтальона, а затем вернуть переведенные данные.
Я возвращаю результаты, как и должно быть, поэтому мне нужно соединение с моим слушателем. Спасибо.