public function save(HTTPRequestCustom $request)
 {
     $installed_langs = LangsManager::get_installed_langs_map();
     foreach ($installed_langs as $lang) {
         if ($request->get_string('delete-' . $lang->get_id(), '')) {
             AppContext::get_response()->redirect(AdminLangsUrlBuilder::uninstall($lang->get_id()));
         }
     }
     if ($request->get_bool('update', false)) {
         foreach ($installed_langs as $lang) {
             if ($lang->get_id() !== LangsManager::get_default_lang()) {
                 $id = $lang->get_id();
                 $activated = $request->get_bool('activated-' . $id, false);
                 $authorizations = Authorizations::auth_array_simple(Lang::ACCES_LANG, $id);
                 LangsManager::change_informations($id, $activated, $authorizations);
             }
         }
         AppContext::get_response()->redirect(AdminLangsUrlBuilder::list_installed_langs());
     }
 }
 public function update_langs()
 {
     $active_langs_number = 0;
     foreach (LangsManager::get_installed_langs_map() as $id => $lang) {
         if ($lang->get_configuration()->get_compatibility() == self::NEW_KERNEL_VERSION) {
             $active_langs_number++;
         } else {
             LangsManager::uninstall($id);
             $this->add_information_to_file('lang ' . $id, 'has been uninstalled because : incompatible with new version');
         }
     }
     if (empty($active_langs_number)) {
         LangsManager::install('french');
         $user_accounts_config = UserAccountsConfig::load();
         $user_accounts_config->set_default_lang('french');
         UserAccountsConfig::save();
     }
 }