diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d7_language_negotiation_settings.yml b/core/modules/migrate_drupal/config/optional/migrate.migration.d7_language_negotiation_settings.yml
new file mode 100644
index 0000000..7c729e2
--- /dev/null
+++ b/core/modules/migrate_drupal/config/optional/migrate.migration.d7_language_negotiation_settings.yml
@@ -0,0 +1,19 @@
+id: d7_language_negotiation_settings
+label: Drupal 7 language negotiation settings
+migration_tags:
+  - Drupal 7
+source:
+  plugin: variable
+  variables:
+    - locale_language_negotiation_session_param
+    - locale_language_negotiation_url_part
+process:
+  'session/parameter': locale_language_negotiation_session_param
+  'url/source': locale_language_negotiation_url_part
+destination:
+  plugin: config
+  config_name: language.negotiation
+dependencies:
+  module:
+    - language
+    - migrate_drupal
diff --git a/core/modules/migrate_drupal/src/Tests/Table/d7/Variable.php b/core/modules/migrate_drupal/src/Tests/Table/d7/Variable.php
index f6faf11..e7ada20 100644
--- a/core/modules/migrate_drupal/src/Tests/Table/d7/Variable.php
+++ b/core/modules/migrate_drupal/src/Tests/Table/d7/Variable.php
@@ -176,6 +176,12 @@ public function load() {
       'name' => 'language_types',
       'value' => 'a:3:{s:8:"language";b:1;s:16:"language_content";b:0;s:12:"language_url";b:0;}',
     ))->values(array(
+      'name' => 'locale_language_negotiation_session_param',
+      'value' => 's:8:"language";',
+    ))->values(array(
+      'name' => 'locale_language_negotiation_url_part',
+      'value' => 's:6:"domain";',
+    ))->values(array(
       'name' => 'maintenance_mode',
       'value' => 'i:0;',
     ))->values(array(
@@ -419,4 +425,4 @@ public function load() {
   }
 
 }
-#dfc4cdd451a6575677b8c10442893d26
+#1f6142a77c72dee2de7e422077efe468
diff --git a/core/modules/migrate_drupal/src/Tests/d7/MigrateLanguageNegotiationSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d7/MigrateLanguageNegotiationSettingsTest.php
new file mode 100644
index 0000000..148eaa6
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Tests/d7/MigrateLanguageNegotiationSettingsTest.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Tests\d7\MigrateLanguageNegotiationSettingsTest.
+ */
+
+namespace Drupal\migrate_drupal\Tests\d7;
+
+use Drupal\migrate\Entity\Migration;
+use Drupal\migrate\MigrateExecutable;
+
+/**
+ * Tests migration of language negotiation variables.
+ *
+ * @group migrate_drupal 7.x
+ */
+class MigrateLanguageNegotiationSettingsTest extends MigrateDrupal7TestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = ['language'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installConfig(static::$modules);
+    $this->loadDumps([
+      $this->getDumpDirectory() . '/Variable.php',
+    ]);
+    $migration = Migration::load('d7_language_negotiation_settings');
+    (new MigrateExecutable($migration, $this))->import();
+  }
+
+  /**
+   * Tests migration of language negotiation variables to language.negotiation.yml.
+   */
+  public function testLanguageNegotiation() {
+    $config = \Drupal::config('language.negotiation');
+    $this->assertIdentical($config->get('session.parameter'), 'language');
+    $this->assertIdentical($config->get('url.source'), 'domain');
+  }
+
+}
