reverted: --- b/core/lib/Drupal/Core/DrupalKernel.php +++ a/core/lib/Drupal/Core/DrupalKernel.php @@ -15,7 +15,7 @@ use Drupal\Core\DependencyInjection\ServiceProviderInterface; use Drupal\Core\DependencyInjection\YamlFileLoader; use Drupal\Core\Extension\ExtensionDiscovery; +use Drupal\Core\Language\Language; -use Drupal\Core\Language\LanguageInterface; use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; use Symfony\Component\DependencyInjection\Dumper\PhpDumper; @@ -519,7 +519,7 @@ // avoids the circular dependencies that would created by // \Drupal\language\LanguageServiceProvider::alter() and allows the default // language to not be English in the installer. + $default_language_values = Language::$defaultValues; - $default_language_values = LanguageInterface::$defaultValues; if ($system = $this->getConfigStorage()->read('system.site')) { if ($default_language_values['id'] != $system['langcode']) { $default_language_values = array('id' => $system['langcode'], 'default' => TRUE); diff -u b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockForm.php b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockForm.php --- b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockForm.php +++ b/core/modules/block/custom_block/lib/Drupal/custom_block/CustomBlockForm.php @@ -109,7 +109,7 @@ $form['langcode'] = array( '#title' => $this->t('Language'), '#type' => 'language_select', - '#default_value' => $block->getUntranslated()->language()->id, + '#default_value' => $block->getUntranslated()->language()->getId(), '#languages' => LanguageInterface::STATE_ALL, '#access' => isset($language_configuration['language_show']) && $language_configuration['language_show'], ); diff -u b/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module --- b/core/modules/content_translation/content_translation.module +++ b/core/modules/content_translation/content_translation.module @@ -709,7 +709,7 @@ // @todo Avoid using request attributes once translation metadata become // regular fields. $attributes = \Drupal::request()->attributes; - \Drupal::service('content_translation.synchronizer')->synchronizeFields($entity, $entity->language()->id, $attributes->get('source_langcode')); + \Drupal::service('content_translation.synchronizer')->synchronizeFields($entity, $entity->language()->getId(), $attributes->get('source_langcode')); } } diff -u b/core/modules/content_translation/content_translation.pages.inc b/core/modules/content_translation/content_translation.pages.inc --- b/core/modules/content_translation/content_translation.pages.inc +++ b/core/modules/content_translation/content_translation.pages.inc @@ -21,7 +21,7 @@ function content_translation_overview(EntityInterface $entity) { $controller = content_translation_controller($entity->getEntityTypeId()); $languages = \Drupal::languageManager()->getLanguages(); - $original = $entity->getUntranslated()->language()->id; + $original = $entity->getUntranslated()->language()->getId(); $translations = $entity->getTranslationLanguages(); $administrator = \Drupal::currentUser()->hasPermission('administer languages'); diff -u b/core/modules/content_translation/lib/Drupal/content_translation/Access/ContentTranslationManageAccessCheck.php b/core/modules/content_translation/lib/Drupal/content_translation/Access/ContentTranslationManageAccessCheck.php --- b/core/modules/content_translation/lib/Drupal/content_translation/Access/ContentTranslationManageAccessCheck.php +++ b/core/modules/content_translation/lib/Drupal/content_translation/Access/ContentTranslationManageAccessCheck.php @@ -69,7 +69,7 @@ $language = language_load($request->attributes->get('language')); $language = !empty($language) ? $language : \Drupal::languageManager()->getCurrentLanguage(LanguageInterface::TYPE_CONTENT); return isset($languages[$language->getId()]) - && $language->getId() != $entity->getUntranslated()->language()->id + && $language->getId() != $entity->getUntranslated()->language()->getId() && isset($translations[$language->getId()]) && $controller->getTranslationAccess($entity, $operation) ? static::ALLOW : static::DENY; diff -u b/core/modules/content_translation/lib/Drupal/content_translation/ContentTranslationHandler.php b/core/modules/content_translation/lib/Drupal/content_translation/ContentTranslationHandler.php --- b/core/modules/content_translation/lib/Drupal/content_translation/ContentTranslationHandler.php +++ b/core/modules/content_translation/lib/Drupal/content_translation/ContentTranslationHandler.php @@ -46,7 +46,7 @@ * {@inheritdoc} */ public function retranslate(EntityInterface $entity, $langcode = NULL) { - $updated_langcode = !empty($langcode) ? $langcode : $entity->language()->id; + $updated_langcode = !empty($langcode) ? $langcode : $entity->language()->getId(); $translations = $entity->getTranslationLanguages(); foreach ($translations as $langcode => $language) { $entity->translation[$langcode]['outdated'] = $langcode != $updated_langcode; @@ -82,7 +82,7 @@ public function entityFormAlter(array &$form, array &$form_state, EntityInterface $entity) { $form_controller = content_translation_form_controller($form_state); $form_langcode = $form_controller->getFormLangcode($form_state); - $entity_langcode = $entity->getUntranslated()->language()->id; + $entity_langcode = $entity->getUntranslated()->language()->getId(); $source_langcode = $this->getSourceLangcode($form_state); $new_translation = !empty($source_langcode); diff -u b/core/modules/locale/lib/Drupal/locale/Tests/LocalePathTest.php b/core/modules/locale/lib/Drupal/locale/Tests/LocalePathTest.php --- b/core/modules/locale/lib/Drupal/locale/Tests/LocalePathTest.php +++ b/core/modules/locale/lib/Drupal/locale/Tests/LocalePathTest.php @@ -124,7 +124,7 @@ $edit = array( 'source' => 'node/' . $first_node->id(), 'alias' => $custom_path, - 'langcode' => $first_node->language()->id, + 'langcode' => $first_node->language()->getId(), ); $this->container->get('path.alias_storage')->save($edit['source'], $edit['alias'], $edit['langcode']); @@ -132,7 +132,7 @@ $edit = array( 'source' => 'node/' . $second_node->id(), 'alias' => $custom_path, - 'langcode' => $second_node->language()->id, + 'langcode' => $second_node->language()->getId(), ); $this->container->get('path.alias_storage')->save($edit['source'], $edit['alias'], $edit['langcode']); diff -u b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorFeedTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorFeedTest.php --- b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorFeedTest.php +++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorFeedTest.php @@ -49,7 +49,7 @@ $feed = entity_load('aggregator_feed', 5); $this->assertNotNull($feed->uuid()); $this->assertEqual($feed->title->value, 'Know Your Meme'); - $this->assertEqual($feed->language()->id, LanguageInterface::LANGCODE_NOT_SPECIFIED); + $this->assertEqual($feed->language()->getId(), LanguageInterface::LANGCODE_NOT_SPECIFIED); $this->assertEqual($feed->url->value, 'http://knowyourmeme.com/newsfeed.rss'); $this->assertEqual($feed->refresh->value, 900); $this->assertEqual($feed->checked->value, 1387659487); diff -u b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorItemTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorItemTest.php --- b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorItemTest.php +++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateAggregatorItemTest.php @@ -76,7 +76,7 @@ $this->assertEqual($item->getDescription(), "

What's new with Drupal 8?

"); $this->assertEqual($item->getLink(), 'https://groups.drupal.org/node/395218'); $this->assertEqual($item->getPostedTime(), 1389297196); - $this->assertEqual($item->language()->id, LanguageInterface::LANGCODE_NOT_SPECIFIED); + $this->assertEqual($item->language()->getId(), LanguageInterface::LANGCODE_NOT_SPECIFIED); $this->assertEqual($item->getGuid(), '395218 at https://groups.drupal.org'); } diff -u b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCommentTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCommentTest.php --- b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCommentTest.php +++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCommentTest.php @@ -76,7 +76,7 @@ $this->assertEqual(0, $comment->pid->value); $this->assertEqual(1, $comment->entity_id->value); $this->assertEqual('node', $comment->entity_type->value); - $this->assertEqual(LanguageInterface::LANGCODE_NOT_SPECIFIED, $comment->language()->id); + $this->assertEqual(LanguageInterface::LANGCODE_NOT_SPECIFIED, $comment->language()->getId()); $comment = entity_load('comment', 2); $this->assertEqual('The response to the second comment.', $comment->subject->value); diff -u b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCustomBlockTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCustomBlockTest.php --- b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCustomBlockTest.php +++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateCustomBlockTest.php @@ -59,7 +59,7 @@ $this->assertEqual('My block 1', $block->label()); $this->assertEqual(1, $block->getRevisionId()); $this->assertTrue(REQUEST_TIME <= $block->getChangedTime() && $block->getChangedTime() <= time()); - $this->assertEqual(LanguageInterface::LANGCODE_NOT_SPECIFIED, $block->language()->id); + $this->assertEqual(LanguageInterface::LANGCODE_NOT_SPECIFIED, $block->language()->getId()); $this->assertEqual('

My custom block body

', $block->body->value); $this->assertEqual('full_html', $block->body->format); } diff -u b/core/modules/node/lib/Drupal/node/Entity/Node.php b/core/modules/node/lib/Drupal/node/Entity/Node.php --- b/core/modules/node/lib/Drupal/node/Entity/Node.php +++ b/core/modules/node/lib/Drupal/node/Entity/Node.php @@ -155,7 +155,7 @@ * {@inheritdoc} */ public function prepareLangcode() { - $langcode = $this->language()->id; + $langcode = $this->language()->getId(); // If the Language module is enabled, try to use the language from content // negotiation. if (\Drupal::moduleHandler()->moduleExists('language')) { diff -u b/core/modules/node/lib/Drupal/node/NodeForm.php b/core/modules/node/lib/Drupal/node/NodeForm.php --- b/core/modules/node/lib/Drupal/node/NodeForm.php +++ b/core/modules/node/lib/Drupal/node/NodeForm.php @@ -89,7 +89,7 @@ $form['langcode'] = array( '#title' => t('Language'), '#type' => 'language_select', - '#default_value' => $node->getUntranslated()->language()->id, + '#default_value' => $node->getUntranslated()->language()->getId(), '#languages' => LanguageInterface::STATE_ALL, '#access' => isset($language_configuration['language_show']) && $language_configuration['language_show'], ); diff -u b/core/modules/node/lib/Drupal/node/NodeListBuilder.php b/core/modules/node/lib/Drupal/node/NodeListBuilder.php --- b/core/modules/node/lib/Drupal/node/NodeListBuilder.php +++ b/core/modules/node/lib/Drupal/node/NodeListBuilder.php @@ -96,7 +96,7 @@ '#theme' => 'mark', '#mark_type' => node_mark($entity->id(), $entity->getChangedTime()), ); - $langcode = $entity->language()->id; + $langcode = $entity->language()->getId(); $uri = $entity->urlInfo(); $options = $uri->getOptions(); $options += ($langcode != LanguageInterface::LANGCODE_NOT_SPECIFIED && isset($languages[$langcode]) ? array('language' => $languages[$langcode]) : array()); diff -u b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php --- b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php +++ b/core/modules/node/lib/Drupal/node/Plugin/Search/NodeSearch.php @@ -287,7 +287,7 @@ 'extra' => $extra, 'score' => $item->calculated_score, 'snippet' => search_excerpt($keys, $node->rendered, $item->langcode), - 'langcode' => $node->language()->id, + 'langcode' => $node->language()->getId(), ); } return $results; diff -u b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php --- b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeAccessLanguageTest.php @@ -65,7 +65,7 @@ // Creating a public node with langcode Hungarian, will be saved as the // fallback in node access table. $node_public_hu = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'hu', 'private' => FALSE)); - $this->assertTrue($node_public_hu->language()->id == 'hu', 'Node created as Hungarian.'); + $this->assertTrue($node_public_hu->language()->getId() == 'hu', 'Node created as Hungarian.'); // Tests the default access is provided for the public Hungarian node. $this->assertNodeAccess($expected_node_access, $node_public_hu, $web_user); @@ -82,7 +82,7 @@ // Creating a public node with no special langcode, like when no language // module enabled. $node_public_no_language = $this->drupalCreateNode(array('private' => FALSE)); - $this->assertTrue($node_public_no_language->language()->id == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); + $this->assertTrue($node_public_no_language->language()->getId() == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); // Tests that access is granted if requested with no language. $this->assertNodeAccess($expected_node_access, $node_public_no_language, $web_user); @@ -100,7 +100,7 @@ \Drupal::entityManager()->getAccessController('node')->resetCache(); \Drupal::state()->set('node_access_test_secret_catalan', 1); $node_public_ca = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'ca', 'private' => FALSE)); - $this->assertTrue($node_public_ca->language()->id == 'ca', 'Node created as Catalan.'); + $this->assertTrue($node_public_ca->language()->getId() == 'ca', 'Node created as Catalan.'); // Tests that access is granted if requested with no language. $this->assertNodeAccess($expected_node_access, $node_public_no_language, $web_user); @@ -155,7 +155,7 @@ // Creating a private node with langcode Hungarian, will be saved as the // fallback in node access table. $node_private_hu = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'hu', 'private' => TRUE)); - $this->assertTrue($node_private_hu->language()->id == 'hu', 'Node created as Hungarian.'); + $this->assertTrue($node_private_hu->language()->getId() == 'hu', 'Node created as Hungarian.'); // Tests the default access is not provided for the private Hungarian node. $this->assertNodeAccess($expected_node_access_no_access, $node_private_hu, $web_user); @@ -172,7 +172,7 @@ // Creating a private node with no special langcode, like when no language // module enabled. $node_private_no_language = $this->drupalCreateNode(array('private' => TRUE)); - $this->assertTrue($node_private_no_language->language()->id == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); + $this->assertTrue($node_private_no_language->language()->getId() == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); // Tests that access is not granted if requested with no language. $this->assertNodeAccess($expected_node_access_no_access, $node_private_no_language, $web_user); @@ -203,7 +203,7 @@ // node_access_test_secret_catalan flag works. $private_ca_user = $this->drupalCreateUser(array('access content', 'node test view')); $node_private_ca = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'ca', 'private' => TRUE)); - $this->assertTrue($node_private_ca->language()->id == 'ca', 'Node created as Catalan.'); + $this->assertTrue($node_private_ca->language()->getId() == 'ca', 'Node created as Catalan.'); // Tests that Catalan is still not accessible to either user. $this->assertNodeAccess($expected_node_access_no_access, $node_private_ca, $web_user, 'ca'); @@ -235,17 +235,17 @@ // Creating a private node with langcode Hungarian, will be saved as // the fallback in node access table. $node_private = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'hu', 'private' => TRUE)); - $this->assertTrue($node_private->language()->id == 'hu', 'Node created as Hungarian.'); + $this->assertTrue($node_private->language()->getId() == 'hu', 'Node created as Hungarian.'); // Creating a public node with langcode Hungarian, will be saved as // the fallback in node access table. $node_public = $this->drupalCreateNode(array('body' => array(array()), 'langcode' => 'hu', 'private' => FALSE)); - $this->assertTrue($node_public->language()->id == 'hu', 'Node created as Hungarian.'); + $this->assertTrue($node_public->language()->getId() == 'hu', 'Node created as Hungarian.'); // Creating a public node with no special langcode, like when no language // module enabled. $node_no_language = $this->drupalCreateNode(array('private' => FALSE)); - $this->assertTrue($node_no_language->language()->id == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); + $this->assertTrue($node_no_language->language()->getId() == LanguageInterface::LANGCODE_NOT_SPECIFIED, 'Node created with not specified language.'); // Query the nodes table as the web user with the node access tag and no // specific langcode. diff -u b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php --- b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeFieldMultilingualTestCase.php @@ -7,6 +7,7 @@ namespace Drupal\node\Tests; +use Drupal\Core\Language\LanguageInterface; use Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationUrl; use Drupal\simpletest\WebTestBase; use Drupal\Core\Language\Language; @@ -85,7 +86,7 @@ // Check that the node exists in the database. $node = $this->drupalGetNodeByTitle($edit[$title_key]); $this->assertTrue($node, 'Node found in database.'); - $this->assertTrue($node->language()->id == $langcode && $node->body->value == $body_value, 'Field language correctly set.'); + $this->assertTrue($node->language()->getId() == $langcode && $node->body->value == $body_value, 'Field language correctly set.'); // Change node language. $langcode = 'it'; @@ -97,7 +98,7 @@ $this->drupalPostForm(NULL, $edit, t('Save')); $node = $this->drupalGetNodeByTitle($edit[$title_key], TRUE); $this->assertTrue($node, 'Node found in database.'); - $this->assertTrue($node->language()->id == $langcode && $node->body->value == $body_value, 'Field language correctly changed.'); + $this->assertTrue($node->language()->getId() == $langcode && $node->body->value == $body_value, 'Field language correctly changed.'); // Enable content language URL detection. $this->container->get('language_negotiator')->saveConfiguration(LanguageInterface::TYPE_CONTENT, array(LanguageNegotiationUrl::METHOD_ID => 0)); diff -u b/core/modules/node/node.tokens.inc b/core/modules/node/node.tokens.inc --- b/core/modules/node/node.tokens.inc +++ b/core/modules/node/node.tokens.inc @@ -134,7 +134,7 @@ if (($items = $translation->get('body')) && !$items->isEmpty()) { $item = $items[0]; $instance = field_info_instance('node', 'body', $node->getType()); - $field_langcode = $translation->language()->id; + $field_langcode = $translation->language()->getId(); // If the summary was requested and is not empty, use it. if ($name == 'summary' && !empty($item->summary)) { $output = $sanitize ? $item->summary_processed : $item->summary; @@ -165,7 +165,7 @@ break; case 'langcode': - $replacements[$original] = $sanitize ? check_plain($node->language()->id) : $node->language()->id; + $replacements[$original] = $sanitize ? check_plain($node->language()->getId()) : $node->language()->getId(); break; case 'url': diff -u b/core/modules/shortcut/src/ShortcutForm.php b/core/modules/shortcut/src/ShortcutForm.php --- b/core/modules/shortcut/src/ShortcutForm.php +++ b/core/modules/shortcut/src/ShortcutForm.php @@ -40,7 +40,7 @@ $form['langcode'] = array( '#title' => t('Language'), '#type' => 'language_select', - '#default_value' => $this->entity->getUntranslated()->language()->id, + '#default_value' => $this->entity->getUntranslated()->language()->getId(), '#languages' => LanguageInterface::STATE_ALL, ); reverted: --- b/core/modules/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php +++ a/core/modules/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php @@ -10,7 +10,7 @@ use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DrupalKernel; use Drupal\Core\KeyValueStore\KeyValueMemoryFactory; +use Drupal\Core\Language\Language; -use Drupal\Core\Language\LanguageInterface; use Symfony\Component\DependencyInjection\Reference; use Drupal\Core\Database\Database; use Symfony\Component\HttpFoundation\Request; @@ -222,7 +222,7 @@ $this->container = $container; // Set the default language on the minimal container. + $this->container->setParameter('language.default_values', Language::$defaultValues); - $this->container->setParameter('language.default_values', LanguageInterface::$defaultValues); $container->register('lock', 'Drupal\Core\Lock\NullLockBackend'); $container->register('cache_factory', 'Drupal\Core\Cache\MemoryBackendFactory'); reverted: --- b/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php +++ a/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php @@ -16,7 +16,7 @@ use Drupal\Core\Database\ConnectionNotDefinedException; use Drupal\Core\Config\StorageInterface; use Drupal\Core\DrupalKernel; +use Drupal\Core\Language\Language; -use Drupal\Core\Language\LanguageInterface; use Drupal\Core\Session\AccountProxy; use Drupal\Core\Session\AnonymousUserSession; use Drupal\Core\Site\Settings; @@ -1071,7 +1071,7 @@ $this->container = new ContainerBuilder(); // @todo Remove this once this class has no calls to t() and format_plural() + $this->container->setParameter('language.default_values', Language::$defaultValues); - $this->container->setParameter('language.default_values', LanguageInterface::$defaultValues); $this->container->register('language.default', 'Drupal\Core\Language\LanguageDefault') ->addArgument('%language.default_values%'); $this->container->register('language_manager', 'Drupal\Core\Language\LanguageManager') diff -u b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationFormTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationFormTest.php --- b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationFormTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationFormTest.php @@ -7,6 +7,7 @@ namespace Drupal\system\Tests\Entity; +use Drupal\Core\Language\LanguageInterface; use Drupal\simpletest\WebTestBase; use Drupal\Core\Language\Language; @@ -68,12 +69,12 @@ $this->drupalPostForm(NULL, $edit, t('Save')); $node = $this->drupalGetNodeByTitle($edit['title[0][value]']); - $this->assertTrue($node->language()->id == $form_langcode, 'Form language is the same as the entity language.'); + $this->assertTrue($node->language()->getId() == $form_langcode, 'Form language is the same as the entity language.'); // Edit the node and test the form language. $this->drupalGet($this->langcodes[0] . '/node/' . $node->id() . '/edit'); $form_langcode = \Drupal::state()->get('entity_test.form_langcode') ?: FALSE; - $this->assertTrue($node->language()->id == $form_langcode, 'Form language is the same as the entity language.'); + $this->assertTrue($node->language()->getId() == $form_langcode, 'Form language is the same as the entity language.'); // Explicitly set form langcode. $langcode = $this->langcodes[0]; diff -u b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php --- b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityTranslationTest.php @@ -44,7 +44,7 @@ 'name' => 'test', 'user_id' => $this->container->get('current_user')->id(), )); - $this->assertEqual($entity->language()->id, LanguageInterface::LANGCODE_NOT_SPECIFIED, format_string('%entity_type: Entity language not specified.', array('%entity_type' => $entity_type))); + $this->assertEqual($entity->language()->getId(), LanguageInterface::LANGCODE_NOT_SPECIFIED, format_string('%entity_type: Entity language not specified.', array('%entity_type' => $entity_type))); $this->assertFalse($entity->getTranslationLanguages(FALSE), format_string('%entity_type: No translations are available', array('%entity_type' => $entity_type))); // Set the value in default language. @@ -152,7 +152,7 @@ $entity = entity_create($entity_type, array('name' => $name, 'user_id' => $uid)); $entity->save(); $entity = entity_load($entity_type, $entity->id()); - $default_langcode = $entity->language()->id; + $default_langcode = $entity->language()->getId(); $this->assertEqual($default_langcode, LanguageInterface::LANGCODE_NOT_SPECIFIED, format_string('%entity_type: Entity created as language neutral.', array('%entity_type' => $entity_type))); $field = $entity->getTranslation(LanguageInterface::LANGCODE_DEFAULT)->get('name'); $this->assertEqual($name, $field->value, format_string('%entity_type: The entity name has been correctly stored as language neutral.', array('%entity_type' => $entity_type))); @@ -172,7 +172,7 @@ $entity = entity_create($entity_type, array('name' => $name, 'user_id' => $uid, 'langcode' => $langcode)); $entity->save(); $entity = entity_load($entity_type, $entity->id()); - $default_langcode = $entity->language()->id; + $default_langcode = $entity->language()->getId(); $this->assertEqual($default_langcode, $langcode, format_string('%entity_type: Entity created as language specific.', array('%entity_type' => $entity_type))); $field = $entity->getTranslation($langcode)->get('name'); $this->assertEqual($name, $field->value, format_string('%entity_type: The entity name has been correctly stored as a language-aware property.', array('%entity_type' => $entity_type))); @@ -221,7 +221,7 @@ ); $field = $entity->getTranslation($langcode)->get('name'); $this->assertEqual($properties[$langcode]['name'][0], $field->value, format_string('%entity_type: The entity name has been correctly stored for language %langcode.', $args)); - $field_langcode = ($langcode == $entity->language()->id) ? $default_langcode : $langcode; + $field_langcode = ($langcode == $entity->language()->getId()) ? $default_langcode : $langcode; $this->assertEqual($field_langcode, $field->getLangcode(), format_string('%entity_type: The field object has the expected langcode %langcode.', $args)); $this->assertEqual($properties[$langcode]['user_id'][0], $entity->getTranslation($langcode)->get('user_id')->target_id, format_string('%entity_type: The entity author has been correctly stored for language %langcode.', $args)); } @@ -320,8 +320,8 @@ $translation = $entity->addTranslation($langcode); $this->assertNotIdentical($entity, $translation, 'The entity and the translation object differ from one another.'); $this->assertTrue($entity->hasTranslation($langcode), 'The new translation exists.'); - $this->assertEqual($translation->language()->id, $langcode, 'The translation language matches the specified one.'); - $this->assertEqual($translation->getUntranslated()->language()->id, $default_langcode, 'The original language can still be retrieved.'); + $this->assertEqual($translation->language()->getId(), $langcode, 'The translation language matches the specified one.'); + $this->assertEqual($translation->getUntranslated()->language()->getId(), $default_langcode, 'The original language can still be retrieved.'); $translation->name->value = $name_translated; $this->assertEqual($entity->name->value, $name, 'The original name is retained after setting a translated value.'); $entity->name->value = $name; @@ -335,16 +335,16 @@ // Check that after loading an entity the language is the default one. $entity = $this->reloadEntity($entity); - $this->assertEqual($entity->language()->id, $default_langcode, 'The loaded entity is the original one.'); + $this->assertEqual($entity->language()->getId(), $default_langcode, 'The loaded entity is the original one.'); // Add another translation and check that everything works as expected. A // new translation object can be obtained also by just specifying a valid // language. $langcode2 = $this->langcodes[2]; $translation = $entity->getTranslation($langcode2); - $value = $entity !== $translation && $translation->language()->id == $langcode2 && $entity->hasTranslation($langcode2); + $value = $entity !== $translation && $translation->language()->getId() == $langcode2 && $entity->hasTranslation($langcode2); $this->assertTrue($value, 'A new translation object can be obtained also by specifying a valid language.'); - $this->assertEqual($entity->language()->id, $default_langcode, 'The original language has been preserved.'); + $this->assertEqual($entity->language()->getId(), $default_langcode, 'The original language has been preserved.'); $translation->save(); $hooks = $this->getHooksInfo(); $this->assertEqual($hooks['entity_translation_insert'], $langcode2, 'The generic entity translation insertion hook has fired.'); @@ -472,21 +472,21 @@ // Check that retrieveing the current translation works as expected. $entity = $this->reloadEntity($entity); $translation = $this->entityManager->getTranslationFromContext($entity, $langcode2); - $this->assertEqual($translation->language()->id, $default_langcode, 'The current translation language matches the expected one.'); + $this->assertEqual($translation->language()->getId(), $default_langcode, 'The current translation language matches the expected one.'); // Check that language fallback respects language weight by default. $languages = $this->languageManager->getLanguages(); $languages[$langcode]->weight = -1; language_save($languages[$langcode]); $translation = $this->entityManager->getTranslationFromContext($entity, $langcode2); - $this->assertEqual($translation->language()->id, $langcode, 'The current translation language matches the expected one.'); + $this->assertEqual($translation->language()->getId(), $langcode, 'The current translation language matches the expected one.'); // Check that the current translation is properly returned. $translation = $this->entityManager->getTranslationFromContext($entity); - $this->assertEqual($langcode, $translation->language()->id, 'The current translation language matches the topmost language fallback candidate.'); + $this->assertEqual($langcode, $translation->language()->getId(), 'The current translation language matches the topmost language fallback candidate.'); $entity->addTranslation($current_langcode, $values[$current_langcode]); $translation = $this->entityManager->getTranslationFromContext($entity); - $this->assertEqual($current_langcode, $translation->language()->id, 'The current translation language matches the current language.'); + $this->assertEqual($current_langcode, $translation->language()->getId(), 'The current translation language matches the current language.'); // Check that if the entity has no translation no fallback is applied. $entity2 = $controller->create(array('langcode' => $default_langcode)); diff -u b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldTranslationSqlStorageTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldTranslationSqlStorageTest.php --- b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldTranslationSqlStorageTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldTranslationSqlStorageTest.php @@ -87,7 +87,7 @@ $status = TRUE; $entity_type = $entity->getEntityTypeId(); $id = $entity->id(); - $langcode = $entity->getUntranslated()->language()->id; + $langcode = $entity->getUntranslated()->language()->getId(); $fields = array($this->field_name, $this->untranslatable_field_name); foreach ($fields as $field_name) { diff -u b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestForm.php b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestForm.php --- b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestForm.php +++ b/core/modules/system/tests/modules/entity_test/lib/Drupal/entity_test/EntityTestForm.php @@ -44,7 +44,7 @@ $form['langcode'] = array( '#title' => t('Language'), '#type' => 'language_select', - '#default_value' => $entity->getUntranslated()->language()->id, + '#default_value' => $entity->getUntranslated()->language()->getId(), '#languages' => LanguageInterface::STATE_ALL, ); diff -u b/core/modules/taxonomy/lib/Drupal/taxonomy/TermForm.php b/core/modules/taxonomy/lib/Drupal/taxonomy/TermForm.php --- b/core/modules/taxonomy/lib/Drupal/taxonomy/TermForm.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/TermForm.php @@ -33,7 +33,7 @@ '#type' => 'language_select', '#title' => $this->t('Language'), '#languages' => LanguageInterface::STATE_ALL, - '#default_value' => $term->getUntranslated()->language()->id, + '#default_value' => $term->getUntranslated()->language()->getId(), '#access' => !empty($language_configuration['language_show']), ); only in patch2: unchanged: --- a/core/lib/Drupal/Core/Entity/ContentEntityForm.php +++ b/core/lib/Drupal/Core/Entity/ContentEntityForm.php @@ -90,7 +90,7 @@ public function getFormLangcode(array &$form_state) { // Imply a 'view' operation to ensure users edit entities in the same // language they are displayed. This allows to keep contextual editing // working also for multilingual entities. - $form_state['langcode'] = $this->entityManager->getTranslationFromContext($this->entity)->language()->id; + $form_state['langcode'] = $this->entityManager->getTranslationFromContext($this->entity)->language()->getId(); } return $form_state['langcode']; } @@ -99,7 +99,7 @@ public function getFormLangcode(array &$form_state) { * {@inheritdoc} */ public function isDefaultFormLangcode(array $form_state) { - return $this->getFormLangcode($form_state) == $this->entity->getUntranslated()->language()->id; + return $this->getFormLangcode($form_state) == $this->entity->getUntranslated()->language()->getId(); } /** only in patch2: unchanged: --- a/core/lib/Drupal/Core/Entity/EntityForm.php +++ b/core/lib/Drupal/Core/Entity/EntityForm.php @@ -145,7 +145,7 @@ public function form(array $form, array &$form_state) { // new entities. $form['langcode'] = array( '#type' => 'value', - '#value' => !$entity->isNew() ? $entity->language()->id : language_default()->id, + '#value' => !$entity->isNew() ? $entity->language()->getId() : language_default()->getId(), ); } return $form; @@ -287,7 +287,7 @@ public function save(array $form, array &$form_state) { * {@inheritdoc} */ public function getFormLangcode(array &$form_state) { - return $this->entity->language()->id; + return $this->entity->language()->getId(); } /** only in patch2: unchanged: --- a/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php +++ b/core/modules/aggregator/lib/Drupal/aggregator/Plugin/aggregator/processor/DefaultProcessor.php @@ -190,7 +190,7 @@ public function process(FeedInterface $feed) { $entry = reset($entry); } else { - $entry = entity_create('aggregator_item', array('langcode' => $feed->language()->id)); + $entry = entity_create('aggregator_item', array('langcode' => $feed->language()->getId())); } if ($item['timestamp']) { $entry->setPostedTime($item['timestamp']); only in patch2: unchanged: --- a/core/modules/content_translation/lib/Drupal/content_translation/FieldTranslationSynchronizer.php +++ b/core/modules/content_translation/lib/Drupal/content_translation/FieldTranslationSynchronizer.php @@ -50,7 +50,7 @@ public function synchronizeFields(ContentEntityInterface $entity, $sync_langcode // If the entity language is being changed there is nothing to synchronize. $entity_type = $entity->getEntityTypeId(); $entity_unchanged = isset($entity->original) ? $entity->original : $this->entityManager->getStorage($entity_type)->loadUnchanged($entity->id()); - if ($entity->getUntranslated()->language()->id != $entity_unchanged->getUntranslated()->language()->id) { + if ($entity->getUntranslated()->language()->getId() != $entity_unchanged->getUntranslated()->language()->getId()) { return; } only in patch2: unchanged: --- a/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php +++ b/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php @@ -603,7 +603,7 @@ public function isMultiple() { public function getDefaultValue(EntityInterface $entity) { if (!empty($this->default_value_function)) { $function = $this->default_value_function; - return $function($entity, $this->getField(), $this, $entity->language()->id); + return $function($entity, $this->getField(), $this, $entity->language()->getId()); } elseif (!empty($this->default_value)) { return $this->default_value; only in patch2: unchanged: --- a/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/TranslationTest.php @@ -176,7 +176,7 @@ function testTranslatableFieldSaveLoad() { // @todo Test every translation once the Entity Translation API allows for // multilingual defaults. - $langcode = $entity->language()->id; + $langcode = $entity->language()->getId(); $this->assertEqual($entity->getTranslation($langcode)->{$field_name_default}->getValue(), $instance->default_value, format_string('Default value correctly populated for language %language.', array('%language' => $langcode))); // Check that explicit empty values are not overridden with default values. only in patch2: unchanged: --- a/core/modules/field/tests/modules/field_test/field_test.module +++ b/core/modules/field/tests/modules/field_test/field_test.module @@ -108,7 +108,7 @@ function field_test_entity_display_build_alter(&$output, $context) { } if (isset($output['test_field'])) { - $output['test_field'][] = array('#markup' => 'entity language is ' . $context['entity']->language()->id); + $output['test_field'][] = array('#markup' => 'entity language is ' . $context['entity']->language()->getId()); } } only in patch2: unchanged: --- a/core/modules/node/lib/Drupal/node/Access/NodeRevisionAccessCheck.php +++ b/core/modules/node/lib/Drupal/node/Access/NodeRevisionAccessCheck.php @@ -119,7 +119,7 @@ public function checkAccess(NodeInterface $node, AccountInterface $account, $op // If no language code was provided, default to the node revision's langcode. if (empty($langcode)) { - $langcode = $node->language()->id; + $langcode = $node->language()->getId(); } // Statically cache access by revision ID, language code, user account ID, only in patch2: unchanged: --- a/core/modules/node/lib/Drupal/node/NodeGrantDatabaseStorage.php +++ b/core/modules/node/lib/Drupal/node/NodeGrantDatabaseStorage.php @@ -190,7 +190,7 @@ public function write(NodeInterface $node, array $grants, $realm = NULL, $delete $grant['nid'] = $node->id(); $grant['langcode'] = $grant_langcode; // The record with the original langcode is used as the fallback. - if ($grant['langcode'] == $node->language()->id) { + if ($grant['langcode'] == $node->language()->getId()) { $grant['fallback'] = 1; } else { only in patch2: unchanged: --- a/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeLastChangedTest.php @@ -49,7 +49,7 @@ function testNodeLastChanged() { $changed_timestamp = node_last_changed($node->id()); $this->assertEqual($changed_timestamp, $node->getChangedTime(), 'Expected last changed timestamp returned.'); - $changed_timestamp = node_last_changed($node->id(), $node->language()->id); + $changed_timestamp = node_last_changed($node->id(), $node->language()->getId()); $this->assertEqual($changed_timestamp, $node->getChangedTime(), 'Expected last changed timestamp returned.'); } } only in patch2: unchanged: --- a/core/modules/node/lib/Drupal/node/Tests/NodeTokenReplaceTest.php +++ b/core/modules/node/lib/Drupal/node/Tests/NodeTokenReplaceTest.php @@ -76,7 +76,7 @@ function testNodeTokenReplacement() { $tests['[node:title]'] = check_plain($node->getTitle()); $tests['[node:body]'] = $node->body->processed; $tests['[node:summary]'] = $node->body->summary_processed; - $tests['[node:langcode]'] = check_plain($node->language()->id); + $tests['[node:langcode]'] = check_plain($node->language()->getId()); $tests['[node:url]'] = url('node/' . $node->id(), $url_options); $tests['[node:edit-url]'] = url('node/' . $node->id() . '/edit', $url_options); $tests['[node:author]'] = String::checkPlain($account->getUsername()); @@ -97,7 +97,7 @@ function testNodeTokenReplacement() { $tests['[node:title]'] = $node->getTitle(); $tests['[node:body]'] = $node->body->value; $tests['[node:summary]'] = $node->body->summary; - $tests['[node:langcode]'] = $node->language()->id; + $tests['[node:langcode]'] = $node->language()->getId(); $tests['[node:author:name]'] = $account->getUsername(); foreach ($tests as $input => $expected) { only in patch2: unchanged: --- a/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Entity/FieldSqlStorageTest.php @@ -117,13 +117,13 @@ function testFieldLoad() { for ($delta = 0; $delta <= $this->field_cardinality; $delta++) { $value = mt_rand(1, 127); $values[$revision_id][] = $value; - $query->values(array($bundle, 0, $entity->id(), $revision_id, $delta, $entity->language()->id, $value)); + $query->values(array($bundle, 0, $entity->id(), $revision_id, $delta, $entity->language()->getId(), $value)); } $query->execute(); } $query = db_insert($this->table)->fields($columns); foreach ($values[$revision_id] as $delta => $value) { - $query->values(array($bundle, 0, $entity->id(), $revision_id, $delta, $entity->language()->id, $value)); + $query->values(array($bundle, 0, $entity->id(), $revision_id, $delta, $entity->language()->getId(), $value)); } $query->execute(); @@ -187,7 +187,7 @@ function testFieldWrite() { 'deleted' => 0, 'entity_id' => $entity->id(), 'revision_id' => $entity->getRevisionId(), - 'langcode' => $entity->language()->id, + 'langcode' => $entity->language()->getId(), 'delta' => $delta, $this->field_name . '_value' => $values[$delta]['value'], ); @@ -210,7 +210,7 @@ function testFieldWrite() { 'deleted' => 0, 'entity_id' => $entity->id(), 'revision_id' => $entity->getRevisionId(), - 'langcode' => $entity->language()->id, + 'langcode' => $entity->language()->getId(), 'delta' => $delta, $this->field_name . '_value' => $values[$delta]['value'], ); @@ -238,7 +238,7 @@ function testFieldWrite() { 'deleted' => 0, 'entity_id' => $entity->id(), 'revision_id' => $revision_id, - 'langcode' => $entity->language()->id, + 'langcode' => $entity->language()->getId(), 'delta' => $delta, $this->field_name . '_value' => $values[$delta]['value'], ); only in patch2: unchanged: --- a/core/modules/system/tests/modules/entity_test/entity_test.module +++ b/core/modules/system/tests/modules/entity_test/entity_test.module @@ -392,28 +392,28 @@ function entity_test_entity_operation_alter(array &$operations, EntityInterface * Implements hook_entity_translation_insert(). */ function entity_test_entity_translation_insert(EntityInterface $translation) { - _entity_test_record_hooks('entity_translation_insert', $translation->language()->id); + _entity_test_record_hooks('entity_translation_insert', $translation->language()->getId()); } /** * Implements hook_entity_translation_delete(). */ function entity_test_entity_translation_delete(EntityInterface $translation) { - _entity_test_record_hooks('entity_translation_delete', $translation->language()->id); + _entity_test_record_hooks('entity_translation_delete', $translation->language()->getId()); } /** * Implements hook_ENTITY_TYPE_translation_insert(). */ function entity_test_entity_test_mul_translation_insert(EntityInterface $translation) { - _entity_test_record_hooks('entity_test_mul_translation_insert', $translation->language()->id); + _entity_test_record_hooks('entity_test_mul_translation_insert', $translation->language()->getId()); } /** * Implements hook_ENTITY_TYPE_translation_delete(). */ function entity_test_entity_test_mul_translation_delete(EntityInterface $translation) { - _entity_test_record_hooks('entity_test_mul_translation_delete', $translation->language()->id); + _entity_test_record_hooks('entity_test_mul_translation_delete', $translation->language()->getId()); } /** only in patch2: unchanged: --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php @@ -63,7 +63,7 @@ function testTermLanguage() { $this->drupalPostForm(NULL, $edit, t('Save')); $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']); $term = reset($terms); - $this->assertEqual($term->language()->id, $edit['langcode'], 'The term contains the correct langcode.'); + $this->assertEqual($term->language()->getId(), $edit['langcode'], 'The term contains the correct langcode.'); // Check if on the edit page the language is correct. $this->drupalGet('taxonomy/term/' . $term->id() . '/edit'); only in patch2: unchanged: --- a/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php +++ b/core/modules/user/lib/Drupal/user/Tests/UserLanguageCreationTest.php @@ -69,7 +69,7 @@ function testLocalUserCreation() { $user = user_load_by_name($username); $this->assertEqual($user->getPreferredLangcode(), $langcode, 'New user has correct preferred language set.'); - $this->assertEqual($user->language()->id, $langcode, 'New user has correct profile language set.'); + $this->assertEqual($user->language()->getId(), $langcode, 'New user has correct profile language set.'); // Register a new user and check if the language selector is hidden. $this->drupalLogout(); @@ -87,7 +87,7 @@ function testLocalUserCreation() { $user = user_load_by_name($username); $this->assertEqual($user->getPreferredLangcode(), $langcode, 'New user has correct preferred language set.'); - $this->assertEqual($user->language()->id, $langcode, 'New user has correct profile language set.'); + $this->assertEqual($user->language()->getId(), $langcode, 'New user has correct profile language set.'); // Test if the admin can use the language selector and if the // correct language is was saved. only in patch2: unchanged: --- a/core/modules/views/lib/Drupal/views/Entity/Render/DefaultLanguageRenderer.php +++ b/core/modules/views/lib/Drupal/views/Entity/Render/DefaultLanguageRenderer.php @@ -24,7 +24,7 @@ class DefaultLanguageRenderer extends RendererBase { * A language code. */ protected function getLangcode(ResultRow $row) { - return $row->_entity->getUntranslated()->language()->id; + return $row->_entity->getUntranslated()->language()->getId(); } }