diff options
Diffstat (limited to 'modules/locale.module')
-rw-r--r-- | modules/locale.module | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/modules/locale.module b/modules/locale.module index 58deceb63..1f9f6115a 100644 --- a/modules/locale.module +++ b/modules/locale.module @@ -108,7 +108,7 @@ function locale_user($type, $edit, &$user, $category = NULL) { $user->language = key($languages['name']); } $languages['name'] = array_map('check_plain', $languages['name']); - return array(array('title' => t('Interface language settings'), 'data' => form_radios(t("Language"), 'language', $user->language, $languages['name'], t("Selecting a different locale will change the interface language of the site.")))); + return array(array('title' => t('Interface language settings'), 'data' => $form['locale_user'] = array(type => 'radios', title => t('Language'), default_value => $user->language, options => $languages['name'], description => t('Selecting a different locale will change the interface language of the site.')))); } } @@ -319,15 +319,12 @@ function locale_admin_manage_delete_screen() { // For other locales, warn user that data loss is ahead $languages = locale_supported_languages(FALSE, TRUE); - $extra = form_hidden('langcode', $langcode); - $output = theme('confirm', + $form['langcode'] = array(type => 'hidden', value => $langcode); + return confirm_form('locale_admin_manage_delete_screen', $form, t('Are you sure you want to delete the language %name?', array('%name' => theme('placeholder', t($languages['name'][$langcode])))), 'admin/locale/language/overview', t('Deleting a language will remove all data associated with it. This action cannot be undone.'), - t('Delete'), - t('Cancel'), - $extra); - return $output; + t('Delete'), t('Cancel')); } /** @@ -338,31 +335,32 @@ function locale_admin_manage_add() { $edit = &$_POST['edit']; $isocodes = _locale_get_iso639_list(); - switch ($_POST['op']) { - // Try to add new language - case t('Add language'): - // Check for duplicates - if (db_num_rows(db_query("SELECT locale FROM {locales_meta} WHERE locale = '%s'", $edit['langcode'])) == 0) { - + // Check for duplicates + if ($duplicate = db_num_rows(db_query("SELECT locale FROM {locales_meta} WHERE locale = '%s'", $edit['langcode'])) == 0) { + switch ($_POST['op']) { + // Try to add new language + case t('Add language'): // Set language name from the available list if needed if ($edit['langcode'] && !$edit['langname'] && isset($isocodes[$edit['langcode']])) { _locale_add_language($edit['langcode'], $isocodes[$edit['langcode']][0]); drupal_goto('admin/locale'); } - + break; + case t('Add custom language'): // Add language, if we have the details - elseif ($edit['langcode'] && $edit['langname']) { + if ($edit['langcode'] && $edit['langname']) { _locale_add_language($edit['langcode'], $edit['langname']); drupal_goto('admin/locale'); } - // Seems like we have not received some data drupal_set_message(t('The language code and the English name of the new language must be specified.'), 'error'); - } - else { - drupal_set_message(t('The language %language (%code) already exists.', array('%language' => theme('placeholder', check_plain($edit['langname'])), '%code' => theme('placeholder', $edit['langcode']))), 'error'); - } - break; + break; + default: + break; + } + } + else { + drupal_set_message(t('The language %language (%code) already exists.', array('%language' => theme('placeholder', check_plain($edit['langname'])), '%code' => theme('placeholder', $edit['langcode']))), 'error'); } return _locale_admin_manage_add_screen(); } |