/** * Returns a hash with 'locale' as key and locale string in POSIX format as value. * * Locale from request object will be used as locale if set, otherwise field language code * will be converted to locale string. * * @param Field $field * * @return array */ public function getViewParameters(Field $field) { $parameters = array(); if ($this->request && $this->request->attributes->has('_locale')) { $parameters['locale'] = $this->request->attributes->get('_locale'); } else { $parameters['locale'] = $this->localeConverter->convertToPOSIX($field->languageCode); } return $parameters; }
public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); if (!$request->attributes->has('_locale')) { foreach ($this->configResolver->getParameter('languages') as $locale) { $convertedLocale = $this->localeConverter->convertToPOSIX($locale); if ($convertedLocale !== null) { // Setting the converted locale to the _locale request attribute, so that it can be properly processed by parent listener. $request->attributes->set('_locale', $convertedLocale); break; } } } parent::onKernelRequest($event); }