diff --git a/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationUITest.php b/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationUITest.php
index 8a1b198..ad7b4e3 100644
--- a/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationUITest.php
+++ b/core/modules/content_translation/lib/Drupal/content_translation/Tests/ContentTranslationUITest.php
@@ -70,7 +70,7 @@ protected function doTestBasicTranslation() {
 
     $uri = $entity->uri('drupal:content-translation-overview');
     $path = $langcode . '/' . $uri['path'] . '/add/' . $default_langcode . '/' . $langcode;
-    $this->drupalPostForm($path, $this->getEditValues($values, $langcode), $this->getFormSubmitAction($entity));
+    $this->drupalPostForm($path, $this->getEditValues($values, $langcode), $this->getFormSubmitAction($entity, $default_langcode));
     if ($this->testLanguageSelector) {
       $this->assertNoFieldByXPath('//select[@id="edit-langcode"]', NULL, 'Language selector correclty disabled on translations.');
     }
@@ -87,7 +87,7 @@ protected function doTestBasicTranslation() {
     // Add another translation and mark the other ones as outdated.
     $values[$langcode] = $this->getNewEntityValues($langcode);
     $edit = $this->getEditValues($values, $langcode) + array('content_translation[retranslate]' => TRUE);
-    $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity));
+    $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity, $default_langcode));
     $entity = entity_load($this->entityType, $this->entityId, TRUE);
 
     // Check that the entered values have been correctly stored.
@@ -128,7 +128,7 @@ protected function doTestOutdatedStatus() {
     // Mark translations as outdated.
     $edit = array('content_translation[retranslate]' => TRUE);
     $uri = $entity->uri('edit-form');
-    $this->drupalPostForm($langcode . '/' . $uri['path'], $edit, $this->getFormSubmitAction($entity));
+    $this->drupalPostForm($langcode . '/' . $uri['path'], $edit, $this->getFormSubmitAction($entity, $langcode));
     $entity = entity_load($this->entityType, $this->entityId, TRUE);
 
     // Check that every translation has the correct "outdated" status.
@@ -142,7 +142,7 @@ protected function doTestOutdatedStatus() {
       else {
         $this->assertFieldByXPath('//input[@name="content_translation[outdated]"]', TRUE, 'The translate flag is checked by default.');
         $edit = array('content_translation[outdated]' => FALSE);
-        $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity));
+        $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity, $enabled_langcode));
         $this->drupalGet($path);
         $this->assertFieldByXPath('//input[@name="content_translation[retranslate]"]', FALSE, 'The retranslate flag is now shown.');
         $entity = entity_load($this->entityType, $this->entityId, TRUE);
@@ -163,7 +163,7 @@ protected function doTestPublishedStatus() {
     foreach ($this->langcodes as $index => $langcode) {
       if ($index > 0) {
         $edit = array('content_translation[status]' => FALSE);
-        $this->drupalPostForm($langcode . '/' . $path, $edit, $this->getFormSubmitAction($entity));
+        $this->drupalPostForm($langcode . '/' . $path, $edit, $this->getFormSubmitAction($entity, $langcode));
         $entity = entity_load($this->entityType, $this->entityId, TRUE);
         $this->assertFalse($entity->translation[$langcode]['status'], 'The translation has been correctly unpublished.');
       }
@@ -195,7 +195,7 @@ protected function doTestAuthoringInfo() {
         'content_translation[created]' => format_date($values[$langcode]['created'], 'custom', 'Y-m-d H:i:s O'),
       );
       $prefix = $index > 0 ? $langcode . '/' : '';
-      $this->drupalPostForm($prefix . $path, $edit, $this->getFormSubmitAction($entity));
+      $this->drupalPostForm($prefix . $path, $edit, $this->getFormSubmitAction($entity, $langcode));
     }
 
     $entity = entity_load($this->entityType, $this->entityId, TRUE);
@@ -211,7 +211,7 @@ protected function doTestAuthoringInfo() {
       'content_translation[name]' => $this->randomName(12),
       'content_translation[created]' => '19/11/1978',
     );
-    $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity));
+    $this->drupalPostForm($path, $edit, $this->getFormSubmitAction($entity, $langcode));
     $this->assertTrue($this->xpath('//div[contains(@class, "error")]//ul'), 'Invalid values generate a list of form errors.');
     $this->assertEqual($entity->translation[$langcode]['uid'], $values[$langcode]['uid'], 'Translation author correctly kept.');
     $this->assertEqual($entity->translation[$langcode]['created'], $values[$langcode]['created'], 'Translation date correctly kept.');
@@ -265,7 +265,7 @@ protected function getEditValues($values, $langcode, $new = FALSE) {
    * @return string
    *   Name of the button to hit.
    */
-  protected function getFormSubmitAction(EntityInterface $entity) {
+  protected function getFormSubmitAction(EntityInterface $entity, $langcode = NULL) {
     return t('Save');
   }
 
diff --git a/core/modules/node/lib/Drupal/node/Entity/Node.php b/core/modules/node/lib/Drupal/node/Entity/Node.php
index c22dbed..13009e9 100644
--- a/core/modules/node/lib/Drupal/node/Entity/Node.php
+++ b/core/modules/node/lib/Drupal/node/Entity/Node.php
@@ -402,30 +402,36 @@ public static function baseFieldDefinitions($entity_type) {
       ->setSettings(array(
         'target_type' => 'user',
         'default_value' => 0,
-      ));
+      ))
+      ->setTranslatable(TRUE);
 
     $fields['status'] = FieldDefinition::create('boolean')
       ->setLabel(t('Publishing status'))
-      ->setDescription(t('A boolean indicating whether the node is published.'));
+      ->setDescription(t('A boolean indicating whether the node is published.'))
+      ->setTranslatable(TRUE);
 
     // @todo Convert to a "created" field in https://drupal.org/node/2145103.
     $fields['created'] = FieldDefinition::create('integer')
       ->setLabel(t('Created'))
-      ->setDescription(t('The time that the node was created.'));
+      ->setDescription(t('The time that the node was created.'))
+      ->setTranslatable(TRUE);
 
     // @todo Convert to a "changed" field in https://drupal.org/node/2145103.
     $fields['changed'] = FieldDefinition::create('integer')
       ->setLabel(t('Changed'))
       ->setDescription(t('The time that the node was last edited.'))
-      ->setPropertyConstraints('value', array('EntityChanged' => array()));
+      ->setPropertyConstraints('value', array('EntityChanged' => array()))
+      ->setTranslatable(TRUE);
 
     $fields['promote'] = FieldDefinition::create('boolean')
       ->setLabel(t('Promote'))
-      ->setDescription(t('A boolean indicating whether the node should be displayed on the front page.'));
+      ->setDescription(t('A boolean indicating whether the node should be displayed on the front page.'))
+      ->setTranslatable(TRUE);
 
     $fields['sticky'] = FieldDefinition::create('boolean')
       ->setLabel(t('Sticky'))
-      ->setDescription(t('A boolean indicating whether the node should be displayed at the top of lists in which it appears.'));
+      ->setDescription(t('A boolean indicating whether the node should be displayed at the top of lists in which it appears.'))
+      ->setTranslatable(TRUE);
 
     // @todo Convert to a "timestamp" field in https://drupal.org/node/2145103.
     $fields['revision_timestamp'] = FieldDefinition::create('integer')
@@ -441,7 +447,8 @@ public static function baseFieldDefinitions($entity_type) {
 
     $fields['log'] = FieldDefinition::create('string')
       ->setLabel(t('Log'))
-      ->setDescription(t('The log entry explaining the changes in this revision.'));
+      ->setDescription(t('The log entry explaining the changes in this revision.'))
+      ->setTranslatable(TRUE);
 
     return $fields;
   }
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php b/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php
index c8d554c..ffb28b5 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeTranslationUITest.php
@@ -90,7 +90,7 @@ protected function createEntity($values, $langcode, $bundle_name = NULL) {
       "{$this->fieldName}[0][value]" => $values[$this->fieldName][0]['value'],
       'langcode' => $langcode,
     );
-    $this->drupalPostForm('node/add/article', $edit,t('Save and publish'));
+    $this->drupalPostForm('node/add/article', $edit, t('Save and publish'));
     $this->drupalLogin($this->translator);
     $node = $this->drupalGetNodeByTitle($values['title']);
     return $node->id();
@@ -99,7 +99,10 @@ protected function createEntity($values, $langcode, $bundle_name = NULL) {
   /**
    * Overrides \Drupal\content_translation\Tests\ContentTranslationUITest::getFormSubmitAction().
    */
-  protected function getFormSubmitAction(EntityInterface $entity) {
+  protected function getFormSubmitAction(EntityInterface $entity, $langcode = NULL) {
+    if (isset($langcode)) {
+      return $this->getFormSubmitAction($entity->getTranslation($langcode));
+    }
     if ($entity->isPublished()) {
       return t('Save and unpublish');
     }
@@ -115,25 +118,24 @@ protected function doTestPublishedStatus() {
     $languages = language_list();
 
     $actions = array(
-      array(t('Save and publish'), t('Save and keep published')),
-      array(t('Save and unpublish'), t('Save and keep unpublished')),
+      t('Save and publish'),
+      t('Save and unpublish'),
     );
 
-    foreach ($actions as $index => $status_actions) {
+    foreach ($actions as $index => $action) {
       // (Un)publish the node translations and check that the translation
       // statuses are (un)published accordingly.
       foreach ($this->langcodes as $langcode) {
-        if (!empty($status_actions)) {
-          $action = array_shift($status_actions);
-        }
         $this->drupalPostForm($uri['path'], array(), $action, array('language' => $languages[$langcode]));
       }
       $entity = entity_load($this->entityType, $this->entityId, TRUE);
       foreach ($this->langcodes as $langcode) {
-        // The node is created as unpulished thus we switch to the published
+        // The node is created as unpublished thus we switch to the published
         // status first.
         $status = !$index;
         $this->assertEqual($status, $entity->translation[$langcode]['status'], 'The translation has been correctly unpublished.');
+        $translation = $entity->getTranslation($langcode);
+        $this->assertEqual($status, $translation->isPublished(), 'The status of the translation has been correctly saved.');
       }
     }
   }
@@ -147,25 +149,34 @@ protected function doTestAuthoringInfo() {
     $languages = language_list();
     $values = array();
 
-    // Post different authoring information for each translation.
+    // Post different base field information for each translation.
     foreach ($this->langcodes as $langcode) {
       $user = $this->drupalCreateUser();
       $values[$langcode] = array(
         'uid' => $user->id(),
         'created' => REQUEST_TIME - mt_rand(0, 1000),
+        'sticky' => (bool) mt_rand(0, 1),
+        'promote' => (bool) mt_rand(0, 1),
       );
       $edit = array(
         'name' => $user->getUsername(),
         'date[date]' => format_date($values[$langcode]['created'], 'custom', 'Y-m-d'),
         'date[time]' => format_date($values[$langcode]['created'], 'custom', 'H:i:s'),
+        'sticky' => $values[$langcode]['sticky'],
+        'promote' => $values[$langcode]['promote'],
       );
-      $this->drupalPostForm($uri['path'], $edit, $this->getFormSubmitAction($entity), array('language' => $languages[$langcode]));
+      $this->drupalPostForm($uri['path'], $edit, $this->getFormSubmitAction($entity, $langcode), array('language' => $languages[$langcode]));
     }
 
     $entity = entity_load($this->entityType, $this->entityId, TRUE);
     foreach ($this->langcodes as $langcode) {
       $this->assertEqual($entity->translation[$langcode]['uid'] == $values[$langcode]['uid'], 'Translation author correctly stored.');
       $this->assertEqual($entity->translation[$langcode]['created'] == $values[$langcode]['created'], 'Translation date correctly stored.');
+      $translation = $entity->getTranslation($langcode);
+      $this->assertEqual($translation->getAuthorId() == $values[$langcode]['uid'], 'Author of translation correctly stored.');
+      $this->assertEqual($translation->getCreatedTime() == $values[$langcode]['created'], 'Date of Translation correctly stored.');
+      $this->assertEqual($translation->isSticky() == $values[$langcode]['sticky'], 'Sticky of Translation correctly stored.');
+      $this->assertEqual($translation->isPromoted() == $values[$langcode]['promote'], 'Promoted of Translation correctly stored.');
     }
   }
 
@@ -237,7 +248,9 @@ function testTranslationRendering() {
     foreach (array_diff($this->langcodes, array($default_langcode)) as $langcode) {
       $values[$langcode] = $this->getNewEntityValues($langcode);
       $translation = $node->addTranslation($langcode, $values[$langcode]);
+      // Publish and promote the translation to frontpage.
       $translation->setPromoted(TRUE);
+      $translation->setPublished(TRUE);
     }
     $node->save();
 
@@ -251,7 +264,7 @@ function testTranslationRendering() {
   }
 
   /**
-   * Tests that the given path dsiplays the correct translation values.
+   * Tests that the given path displays the correct translation values.
    *
    * @param string $path
    *   The path to be tested.
