/**
  * Uninstall a locale.
  * @param $args array
  * @param $request Request
  * @return JSONMessage JSON object
  */
 function uninstallLocale($args, $request)
 {
     $site = $request->getSite();
     $locale = $request->getUserVar('rowId');
     $gridData = $this->getGridDataElements($request);
     if (array_key_exists($locale, $gridData)) {
         $localeData = $gridData[$locale];
         if (!$localeData['primary']) {
             $installedLocales = $site->getInstalledLocales();
             if (in_array($locale, $installedLocales)) {
                 $installedLocales = array_diff($installedLocales, array($locale));
                 $site->setInstalledLocales($installedLocales);
                 $supportedLocales = $site->getSupportedLocales();
                 $supportedLocales = array_diff($supportedLocales, array($locale));
                 $site->setSupportedLocales($supportedLocales);
                 $siteDao = DAORegistry::getDAO('SiteDAO');
                 $siteDao->updateObject($site);
                 $this->_updateContextLocaleSettings($request);
                 AppLocale::uninstallLocale($locale);
                 $notificationManager = new NotificationManager();
                 $user = $request->getUser();
                 $notificationManager->createTrivialNotification($user->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.localeUninstalled', array('locale' => $localeData['name']))));
             }
         }
     }
     return DAO::getDataChangedEvent($locale);
 }
 /**
  * Reload locale-specific data.
  * @param $locale string
  */
 function reloadLocale($locale)
 {
     AppLocale::uninstallLocale($locale);
     AppLocale::installLocale($locale);
 }
 /**
  * Uninstall a locale
  * @param $args array
  * @param $request object
  */
 function uninstallLocale($args, &$request)
 {
     $this->validate();
     $site =& $request->getSite();
     $locale = $request->getUserVar('locale');
     if (isset($locale) && !empty($locale) && $locale != $site->getPrimaryLocale()) {
         $installedLocales = $site->getInstalledLocales();
         if (in_array($locale, $installedLocales)) {
             $installedLocales = array_diff($installedLocales, array($locale));
             $site->setInstalledLocales($installedLocales);
             $supportedLocales = $site->getSupportedLocales();
             $supportedLocales = array_diff($supportedLocales, array($locale));
             $site->setSupportedLocales($supportedLocales);
             $siteDao =& DAORegistry::getDAO('SiteDAO');
             $siteDao->updateObject($site);
             $this->_removeLocalesFromJournals($request);
             AppLocale::uninstallLocale($locale);
         }
     }
     $request->redirect(null, null, 'languages');
 }