diff -u b/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc --- b/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -876,9 +876,9 @@ '#size' => 20, ), 'drupal_langcode' => array( - '#type' => 'textfield', + '#type' => 'select', + '#options' => $language_options, '#default_value' => '', - '#size' => 20, ), ); @@ -928,7 +928,7 @@ $header = array( t('Browser language code'), - t('Drupal language code'), + t('Drupal language'), t('Operations'), ); @@ -953,13 +953,10 @@ elseif (preg_match('/[^a-z\-]/', $data['browser_langcode'])) { form_set_error('mappings][' . $key . '][browser_langcode', 'Browser language codes can only contain lowercase letters and a hyphen(-).'); } - elseif (preg_match('/[^a-z\-]/', $data['drupal_langcode'])) { - form_set_error('mappings][' . $key . '][drupal_langcode', 'Drupal language codes can only contain lowercase letters and a hyphen(-).'); - } $unique_values[$data['browser_langcode']] = $data['drupal_langcode']; } elseif (empty($data['browser_langcode']) xor empty($data['drupal_langcode'])) { - form_set_error('mappings][' . $key . '][drupal_langcode', 'Both browser and Drupal language codes must be provided.'); + form_set_error('mappings][' . $key . '][drupal_langcode', 'Both browser language code and Drupal language must be provided.'); } } else { @@ -971,18 +968,12 @@ elseif (preg_match('/[^a-z\-]/', $data['browser_langcode'])) { form_set_error('mappings][' . $key . '][browser_langcode', 'Browser language codes can only contain lowercase letters and a hyphen(-).'); } - elseif (preg_match('/[^a-z\-]/', $data['drupal_langcode'])) { - form_set_error('mappings][' . $key . '][drupal_langcode', 'Drupal language codes can only contain lowercase letters and a hyphen(-).'); - } $unique_values[$data['browser_langcode']] = $data['drupal_langcode']; } else { if (empty($data['browser_langcode'])) { form_set_error('mappings][' . $key . '][browser_langcode', 'Browser language code cannot be blank.'); } - if (empty($data['drupal_langcode'])) { - form_set_error('mappings][' . $key . '][drupal_langcode', 'Drupal language code cannot be blank.'); - } } } } diff -u b/core/modules/language/language.module b/core/modules/language/language.module --- b/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -38,7 +38,7 @@ return $output; case 'admin/config/regional/language/detection/browser': - $output = '
' . t('Browsers use different language codes to refer to the same languages. You can add and edit mappings from browser language codes to the language codes used by Drupal.') . '
'; + $output = '' . t('Browsers use different language codes to refer to the same languages. You can add and edit mappings from browser language codes to the languages used by Drupal.', array('@configure-languages' => url('admin/config/regional/language'))) . '
'; return $output; case 'admin/structure/block/manage/%/%': diff -u b/core/modules/language/lib/Drupal/language/Tests/LanguageBrowserDetectionUnitTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageBrowserDetectionUnitTest.php --- b/core/modules/language/lib/Drupal/language/Tests/LanguageBrowserDetectionUnitTest.php +++ b/core/modules/language/lib/Drupal/language/Tests/LanguageBrowserDetectionUnitTest.php @@ -206,21 +206,13 @@ $this->drupalPost('admin/config/regional/language/detection/browser', $edit, t('Save configuration')); $this->assertText('Browser language codes must be unique.', 'Error message displayed.'); - // Add a new custom mapping with only a browser language code. - $edit = array( - 'mappings[_new][browser_langcode]' => 'xxxx', - 'mappings[_new][drupal_langcode]' => '', - ); - $this->drupalPost('admin/config/regional/language/detection/browser', $edit, t('Save configuration')); - $this->assertText(t('Both browser and Drupal language codes must be provided.'), 'Error message displayed.'); - // Add a new custom mapping with only a Drupal language code. $edit = array( 'mappings[_new][browser_langcode]' => '', 'mappings[_new][drupal_langcode]' => 'en', ); $this->drupalPost('admin/config/regional/language/detection/browser', $edit, t('Save configuration')); - $this->assertText(t('Both browser and Drupal language codes must be provided.'), 'Error message displayed.'); + $this->assertText(t('Both browser language code and Drupal language must be provided.'), 'Error message displayed.'); // Change browser language code of our custom mapping to zh-sg. $edit = array(