diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index a7c6663..0147f12 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -187,7 +187,7 @@ function _language_admin_common_controls(&$form, $language = NULL) { } $form['name'] = array( '#type' => 'textfield', - '#title' => t('Language name'), + '#title' => t('Language name in English'), '#maxlength' => 64, '#default_value' => @$language->name, '#required' => TRUE, diff --git a/core/modules/language/lib/Drupal/language/Plugin/Core/Entity/Language.php b/core/modules/language/lib/Drupal/language/Plugin/Core/Entity/Language.php index 4172e96..1dbd4b7 100644 --- a/core/modules/language/lib/Drupal/language/Plugin/Core/Entity/Language.php +++ b/core/modules/language/lib/Drupal/language/Plugin/Core/Entity/Language.php @@ -10,6 +10,7 @@ use Drupal\Core\Entity\Annotation\EntityType; use Drupal\Core\Annotation\Translation; use Drupal\Core\Config\Entity\ConfigEntityBase; +use Drupal\Core\Entity\EntityStorageControllerInterface; use Drupal\language\LanguageInterface; /** @@ -76,4 +77,11 @@ class Language extends ConfigEntityBase implements LanguageInterface { */ public $locked = FALSE; + /** + * {@inheritdoc} + */ + public static function preCreate(EntityStorageControllerInterface $storage_controller, array &$values) { + $values['langcode'] = 'en'; + parent::preCreate($storage_controller, $values); + } } diff --git a/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationTest.php b/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationTest.php index 4bce384..7a83349 100644 --- a/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationTest.php +++ b/core/modules/language/lib/Drupal/language/Tests/LanguageConfigurationTest.php @@ -51,6 +51,9 @@ function testLanguageConfiguration() { $this->drupalPost('admin/config/regional/language/add', $edit, 'Add language'); $this->assertText('French'); $this->assertEqual($this->getUrl(), url('admin/config/regional/language', array('absolute' => TRUE)), 'Correct page redirection.'); + // Langcode for Languages is always 'en'. + $language = $this->container->get('config.factory')->get('language.entity.fr')->get(); + $this->assertEqual($language['langcode'], 'en'); // Check if the Default English language has no path prefix. $this->drupalGet('admin/config/regional/language/detection/url'); @@ -100,6 +103,16 @@ function testLanguageConfiguration() { ); $this->drupalPost(NULL, $edit, t('Save configuration')); $this->assertText(t('The prefix may not contain a slash.'), 'English prefix cannot be changed to contain a slash.'); + + // Remove English language and add a new Language to check if langcode of + // Language Entity is 'en'. + $this->assert(language_delete('en'), 'Deleted English language.'); + $edit = array( + 'predefined_langcode' => 'de', + ); + $this->drupalPost('admin/config/regional/language/add', $edit, 'Add language'); + $language = $this->container->get('config.factory')->get('language.entity.de')->get(); + $this->assertEqual($language['langcode'], 'en'); } /**