diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index a601d00dd6cf110b48a696e8f8a00a4a70900102..245c62be617e101137e505fcca2faa69cb0ad648 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -199,7 +199,7 @@ function language_admin_add_form($form, &$form_state) { ), ), '#validate' => array('language_admin_add_predefined_form_validate'), - '#submit' => array('language_admin_add_predefined_form_submit'), + '#submit' => array('language_admin_add_form_submit'), ); $form['custom_language'] = array( @@ -215,7 +215,7 @@ function language_admin_add_form($form, &$form_state) { '#type' => 'submit', '#value' => t('Add custom language'), '#validate' => array('language_admin_add_custom_form_validate'), - '#submit' => array('language_admin_add_custom_form_submit'), + '#submit' => array('language_admin_add_form_submit'), ); return $form; @@ -325,34 +325,34 @@ function language_admin_add_custom_form_validate($form, &$form_state) { } /** - * Process the custom language addition form submission. + * Process the custom and predefined language addition form submission. */ -function language_admin_add_custom_form_submit($form, &$form_state) { - $langcode = $form_state['values']['langcode']; - // Custom language form. - $language = (object) array( - 'langcode' => $langcode, - 'name' => $form_state['values']['name'], - 'direction' => $form_state['values']['direction'], - ); - language_save($language); - drupal_set_message(t('The language %language has been created and can now be used.', array('%language' => $form_state['values']['name']))); - $form_state['redirect'] = 'admin/config/regional/language'; -} - -/** - * Process the predefined language addition form submission. - */ -function language_admin_add_predefined_form_submit($form, &$form_state) { - // Predefined language selection. +function language_admin_add_form_submit($form, &$form_state) { $langcode = $form_state['values']['predefined_langcode']; - include_once DRUPAL_ROOT . '/core/includes/standard.inc'; - $predefined = standard_language_list(); - $language = (object) array( - 'langcode' => $langcode, - ); - language_save($language); - drupal_set_message(t('The language %language has been created and can now be used.', array('%language' => t($predefined[$langcode][0])))); + if ($langcode == 'custom') { + $langcode = $form_state['values']['langcode']; + // Custom language form. + $language = (object) array( + 'langcode' => $langcode, + 'name' => $form_state['values']['name'], + 'direction' => $form_state['values']['direction'], + ); + } + else { + include_once DRUPAL_ROOT . '/core/includes/standard.inc'; + $predefined = standard_language_list(); + $language = (object) array( + 'langcode' => $langcode, + ); + } + // Save the language and inform the user that it happened. + $language = language_save($language); + drupal_set_message(t('The language %language has been created and can now be used.', array('%language' => $language->name))); + + // Tell the user they have the option to add a language switcher block + // to their theme so they can switch between the languages. + drupal_set_message(t('Use one of the language switcher blocks to allow site visitors to switch between languages. You can enable these blocks on the block administration page.', array('@block-admin' => 'admin/structure/block'))); + $form_state['redirect'] = 'admin/config/regional/language'; }