/**
  * Displays the edit form and processes it once submitted.
  *
  * @param \Symfony\Component\HttpFoundation\Request $request
  * @param mixed $languageId
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function editAction(Request $request, $languageId = null)
 {
     $language = $languageId ? $this->languageService->loadLanguageById($languageId) : new Language(['languageCode' => '__new__' . md5(microtime(true)), 'name' => 'New language']);
     $languageData = (new LanguageMapper())->mapToFormData($language);
     $actionUrl = $this->generateUrl('admin_languageedit', ['languageId' => $languageId]);
     $form = $this->createForm(new LanguageType(), $languageData);
     $form->handleRequest($request);
     if ($form->isValid()) {
         $this->actionDispatcher->dispatchFormAction($form, $languageData, $form->getClickedButton() ? $form->getClickedButton()->getName() : null);
         if ($response = $this->actionDispatcher->getResponse()) {
             return $response;
         }
         return $this->redirectAfterFormPost($actionUrl);
     }
     return $this->render('eZPlatformUIBundle:Language:edit.html.twig', ['form' => $form->createView(), 'actionUrl' => $actionUrl, 'language' => $languageData]);
 }
 /**
  * Loads a Language by its id ($languageId)
  *
  * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException if language could not be found
  *
  * @param mixed $languageId
  *
  * @return \eZ\Publish\API\Repository\Values\Content\Language
  */
 public function loadLanguageById($languageId)
 {
     return $this->service->loadLanguageById($languageId);
 }