diff --git a/core/modules/node/config/install/views.view.content.yml b/core/modules/node/config/install/views.view.content.yml
index 3ea06e7..855b44a 100644
--- a/core/modules/node/config/install/views.view.content.yml
+++ b/core/modules/node/config/install/views.view.content.yml
@@ -1,8 +1,18 @@
-base_field: nid
+langcode: en
+status: true
+dependencies:
+  module:
+    - history
+    - node
+    - user
+id: content
+label: Content
+module: node
+description: 'Find and manage content.'
+tag: default
 base_table: node
+base_field: nid
 core: 8.x
-description: 'Find and manage content.'
-status: true
 display:
   default:
     display_options:
@@ -459,8 +469,14 @@ display:
           provider: views
         langcode:
           id: langcode
-          table: node_revision
+          table: node_field_data
           field: langcode
+          relationship: none
+          group_type: group
+          admin_label: ''
+          dependencies:
+            module:
+              - views
           operator: in
           value: {  }
           group: 1
@@ -468,12 +484,32 @@ display:
           expose:
             operator_id: langcode_op
             label: Language
+            description: ''
+            use_operator: false
             operator: langcode_op
             identifier: langcode
+            required: false
+            remember: false
+            multiple: false
             remember_roles:
               authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
           plugin_id: language
-          provider: language
+          provider: views
       sorts: {  }
       title: Content
       empty:
@@ -500,6 +536,8 @@ display:
         operator: AND
         groups:
           1: AND
+      field_langcode: '***CURRENT_LANGUAGE***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -520,16 +558,9 @@ display:
         description: 'Find and manage content'
         name: admin
         weight: -10
+      field_langcode: '***CURRENT_LANGUAGE***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
     position: 1
-label: Content
-module: node
-id: content
-tag: default
-langcode: en
-dependencies:
-  module:
-    - node
-    - user
diff --git a/core/modules/node/config/install/views.view.frontpage.yml b/core/modules/node/config/install/views.view.frontpage.yml
index 23931d3..a7f8a28 100644
--- a/core/modules/node/config/install/views.view.frontpage.yml
+++ b/core/modules/node/config/install/views.view.frontpage.yml
@@ -1,8 +1,16 @@
-base_field: nid
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+id: frontpage
+label: Frontpage
+module: node
+description: 'All content promoted to the front page.'
+tag: default
 base_table: node
+base_field: nid
 core: 8.x
-description: 'All content promoted to the front page.'
-status: true
 display:
   default:
     display_options:
@@ -110,6 +118,48 @@ display:
           value: true
           plugin_id: boolean
           provider: views
+        langcode:
+          id: langcode
+          table: node_field_data
+          field: langcode
+          relationship: none
+          group_type: group
+          admin_label: ''
+          dependencies:
+            module:
+              - views
+          operator: in
+          value:
+            '***CURRENT_LANGUAGE***': '***CURRENT_LANGUAGE***'
+          group: 1
+          exposed: false
+          expose:
+            operator_id: ''
+            label: ''
+            description: ''
+            use_operator: false
+            operator: ''
+            identifier: ''
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          plugin_id: language
+          provider: views
       pager:
         type: full
         options:
@@ -190,6 +240,8 @@ display:
       relationships: {  }
       fields: {  }
       arguments: {  }
+      field_langcode: '***CURRENT_LANGUAGE***'
+      field_langcode_add_to_query: null
     display_plugin: default
     display_title: Master
     id: default
@@ -197,6 +249,8 @@ display:
   page_1:
     display_options:
       path: node
+      field_langcode: '***CURRENT_LANGUAGE***'
+      field_langcode_add_to_query: null
     display_plugin: page
     display_title: Page
     id: page_1
@@ -232,11 +286,5 @@ display:
           view_mode: rss
           links: false
         provider: views
-label: Frontpage
-module: node
-id: frontpage
-tag: default
-langcode: en
-dependencies:
-  module:
-    - node
+      field_langcode: '***CURRENT_LANGUAGE***'
+      field_langcode_add_to_query: null
diff --git a/core/modules/node/src/Tests/Views/NodeLanguageTest.php b/core/modules/node/src/Tests/Views/NodeLanguageTest.php
index fa394b2..e686f78 100644
--- a/core/modules/node/src/Tests/Views/NodeLanguageTest.php
+++ b/core/modules/node/src/Tests/Views/NodeLanguageTest.php
@@ -79,13 +79,13 @@ function setUp() {
         'Segundo nodo es',
       ),
       'fr' => array(
-        'Premier nodule fr',
+        'Premier nœud fr',
       )
     );
 
     // Create nodes with translations.
     foreach ($this->node_titles['en'] as $index => $title) {
-      $node = $this->drupalCreateNode(array('title' => $title, 'langcode' => 'en', 'type' => 'page'));
+      $node = $this->drupalCreateNode(array('title' => $title, 'langcode' => 'en', 'type' => 'page', 'promote' => 1));
       foreach (array('es', 'fr') as $langcode) {
         if (isset($this->node_titles[$langcode][$index])) {
           $translation = $node->addTranslation($langcode, array('title' => $this->node_titles[$langcode][$index]));
@@ -94,6 +94,9 @@ function setUp() {
       }
       $node->save();
     }
+
+    $user = $this->drupalCreateUser(array('access content overview', 'access content'));
+    $this->drupalLogin($user);
   }
 
   /**
@@ -142,5 +145,43 @@ public function testLanguages() {
     $this->assertNoText('English', 'English language is not shown on ' . $message);
     $this->assertNoText('French', 'French language is not shown on ' . $message);
     $this->assertText('Spanish', 'Spanish language is shown on ' . $message);
+
+    // Test the front page view filter. Only node titles in the current language
+    // should be displayed on the front page by default.
+    foreach ($this->node_titles as $langcode => $titles) {
+      $this->drupalGet(($langcode == 'en' ? '' : "$langcode/") . 'node');
+      foreach ($titles as $title) {
+        $this->assertText($title);
+      }
+      foreach ($this->node_titles as $control_langcode => $control_titles) {
+        if ($langcode != $control_langcode) {
+          foreach ($control_titles as $title) {
+            $this->assertNoText($title);
+          }
+        }
+      }
+    }
+
+    // Test the node admin view filter. By default all translations should show.
+    $this->drupalGet('admin/content');
+    foreach ($this->node_titles as $titles) {
+      foreach ($titles as $title) {
+        $this->assertText($title);
+      }
+    }
+    // When filtered, only the specific languages should show.
+    foreach ($this->node_titles as $langcode => $titles) {
+      $this->drupalGet('admin/content', array('query' => array('langcode' => $langcode)));
+      foreach ($titles as $title) {
+        $this->assertText($title);
+      }
+      foreach ($this->node_titles as $control_langcode => $control_titles) {
+        if ($langcode != $control_langcode) {
+          foreach ($control_titles as $title) {
+            $this->assertNoText($title);
+          }
+        }
+      }
+    }
   }
 }
diff --git a/core/modules/views/config/schema/views.data_types.schema.yml b/core/modules/views/config/schema/views.data_types.schema.yml
index 3cef265..8ebcea0 100644
--- a/core/modules/views/config/schema/views.data_types.schema.yml
+++ b/core/modules/views/config/schema/views.data_types.schema.yml
@@ -330,6 +330,16 @@ views_handler:
     provider:
       type: string
       label: 'Provider'
+    dependencies:
+      type: mapping
+      label: 'Dependencies'
+      mapping:
+        module:
+          type: sequence
+          label: 'Modules'
+          sequence:
+            - type: string
+              label: 'Dependency'
 
 views_argument:
   type: views_handler
