diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 60ef2d7..5e13edf 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -440,6 +440,20 @@ function install_begin_request($class_loader, &$install_state) {
     }
   }
 
+  // Default the language based on profile configuration, if applicable.
+  if (isset($install_state['profile_info']['distribution']['langcode'])) {
+    $default_langcode = $install_state['profile_info']['distribution']['langcode'];
+    if (!isset($install_state['parameters']['langcode']) || $install_state['parameters']['langcode'] != $default_langcode) {
+      // If the default language changed, update it.
+      if (isset($install_state['parameters']['langcode'])) {
+        $default_language = new Language(array('id' => $default_langcode));
+        $container->get('language.default')->set($default_language);
+        \Drupal::translation()->setDefaultLangcode($default_langcode);
+      }
+      $install_state['parameters']['langcode'] = $default_langcode;
+    }
+  }
+
   // Override the module list with a minimal set of modules.
   $module_handler = \Drupal::moduleHandler();
   if (!$module_handler->moduleExists('system')) {
