/**
  * Displays a form to edit an existing locale entity or create a new one.
  *
  * @param integer $id      The id of the Locale to edit
  * @param Request $request
  *
  * @return RedirectResponse|Response
  */
 public function editAction($id, Request $request)
 {
     /**
      * @var $locale Locale
      */
     $locale = $this->getEm()->getRepository('UnifikSystemBundle:Locale')->find($id);
     if (false == $locale) {
         $locale = new Locale();
         $locale->setContainer($this->container);
     }
     $this->pushNavigationElement($locale);
     $form = $this->createForm(new LocaleType(), $locale);
     if ('POST' == $request->getMethod()) {
         $form->submit($request);
         if ($form->isValid()) {
             $this->getEm()->persist($locale);
             $this->getEm()->flush();
             $this->addFlashSuccess($this->get('translator')->trans('%entity% has been saved.', array('%entity%' => $locale)));
             $this->invalidateDatabaseConfig();
             if ($request->request->has('save')) {
                 return $this->redirect($this->generateUrl('unifik_system_backend_locale'));
             }
             return $this->redirect($this->generateUrl($locale->getRoute(), $locale->getRouteParams()));
         } else {
             $this->addFlashError('Some fields are invalid.');
         }
     }
     return $this->render('UnifikSystemBundle:Backend/Locale/Locale:edit.html.twig', array('locale' => $locale, 'default_locale' => $this->container->getParameter('locale'), 'form' => $form->createView()));
 }