/**
* @ApiDoc(
* section="Interface i18n",
* description="Prints all language messages"
* )
*
* @Rest\QueryParam(name="lang", requirements="[a-z]{2,3}", strict=true, description="The language code")
* @Rest\QueryParam(name="javascript", requirements=".+", default=false, description="If it should be printed as javascript")
*
* @Rest\Get("/admin/ui/language")
*
* @param ParamFetcher $paramFetcher
*
* @return array|string depends on javascript param
*/
public function getLanguageAction(ParamFetcher $paramFetcher)
{
$lang = $paramFetcher->get('lang');
$javascript = $paramFetcher->get('javascript');
if (!$this->translator->isValidLanguage($lang)) {
$lang = 'en';
}
$this->pageStack->getSession()->set('admin_language', $lang);
$messages = $this->translator->loadMessages($lang);
if ($javascript) {
$response = new Response();
$response->headers->set('Content-Type', 'text/javascript');
$content = "if( typeof(jarves)=='undefined') window.jarves = {}; jarves.lang = " . json_encode($messages, JSON_PRETTY_PRINT);
$content .= "\nLocale.define('en-US', 'Date', " . $this->templating->render('JarvesBundle:Default:javascript-locales.js.twig') . ");";
$response->setContent($content);
return $response;
} else {
$messages['mootools'] = $this->templating->render('JarvesBundle:Default:javascript-locales.js.twig');
return $messages;
}
}