function locale_uninstall

Same name in other branches
  1. 9 core/modules/locale/locale.install \locale_uninstall()
  2. 8.9.x core/modules/locale/locale.install \locale_uninstall()
  3. 10 core/modules/locale/locale.install \locale_uninstall()
  4. 11.x core/modules/locale/locale.install \locale_uninstall()

Implements hook_uninstall().

File

modules/locale/locale.install, line 224

Code

function locale_uninstall() {
    // Delete all JavaScript translation files.
    $locale_js_directory = 'public://' . variable_get('locale_js_directory', 'languages');
    if (is_dir($locale_js_directory)) {
        $files = db_query('SELECT language, javascript FROM {languages}');
        foreach ($files as $file) {
            if (!empty($file->javascript)) {
                file_unmanaged_delete($locale_js_directory . '/' . $file->language . '_' . $file->javascript . '.js');
            }
        }
        // Delete the JavaScript translations directory if empty.
        if (!file_scan_directory($locale_js_directory, '/.*/')) {
            drupal_rmdir($locale_js_directory);
        }
    }
    // Clear variables.
    variable_del('language_default');
    variable_del('language_count');
    variable_del('language_types');
    variable_del('locale_language_negotiation_url_part');
    variable_del('locale_language_negotiation_session_param');
    variable_del('language_content_type_default');
    variable_del('language_content_type_negotiation');
    variable_del('locale_cache_strings');
    variable_del('locale_js_directory');
    variable_del('javascript_parsed');
    variable_del('locale_field_language_fallback');
    variable_del('locale_cache_length');
    foreach (language_types() as $type) {
        variable_del("language_negotiation_{$type}");
        variable_del("locale_language_providers_weight_{$type}");
    }
    foreach (node_type_get_types() as $type => $content_type) {
        $setting = variable_del("language_content_type_{$type}");
    }
    // Switch back to English: with a $language->language value different from 'en'
    // successive calls of t() might result in calling locale(), which in turn might
    // try to query the unexisting {locales_source} and {locales_target} tables.
    drupal_language_initialize();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.