function locale_languages_delete_form_submit

7.x locale.admin.inc locale_languages_delete_form_submit($form, &$form_state)
6.x locale.inc locale_languages_delete_form_submit($form, &$form_state)

Process language deletion submissions.

Related topics

File

drupal-6.x/includes/locale.inc, line 423
Administration functions for locale.module.

Code

function locale_languages_delete_form_submit($form, &$form_state) {
  $languages = language_list();
  if (isset($languages[$form_state['values']['langcode']])) {
    // Remove translations first.
    db_query("DELETE FROM {locales_target} WHERE language = '%s'", $form_state['values']['langcode']);
    cache_clear_all('locale:' . $form_state['values']['langcode'], 'cache');
    // With no translations, this removes existing JavaScript translations file.
    _locale_rebuild_js($form_state['values']['langcode']);
    // Remove the language.
    db_query("DELETE FROM {languages} WHERE language = '%s'", $form_state['values']['langcode']);
    db_query("UPDATE {node} SET language = '' WHERE language = '%s'", $form_state['values']['langcode']);
    $variables = array('%locale' => $languages[$form_state['values']['langcode']]->name);
    drupal_set_message(t('The language %locale has been removed.', $variables));
    watchdog('locale', 'The language %locale has been removed.', $variables);
  }

  // Changing the language settings impacts the interface:
  cache_clear_all('*', 'cache_page', TRUE);

  $form_state['redirect'] = 'admin/settings/language';
  return;
}