diff --git a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
index eca1381..9f66d4f 100644
--- a/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
+++ b/core/modules/ckeditor/lib/Drupal/ckeditor/Plugin/Editor/CKEditor.php
@@ -202,6 +202,18 @@ public function getJSSettings(EditorEntity $editor) {
       $settings += $plugin->getConfig($editor);
     }
 
+    // Fallback on English if no matching language code was found.
+    $display_langcode = 'en';
+
+    // @todo cache language list from CKEditor, to avoid costly file operations.
+    $ckeditor_languages = glob(DRUPAL_ROOT . '/core/assets/vendor/ckeditor/lang/*.js');
+    foreach ($ckeditor_languages as $language_filename) {
+      $langcode = basename($language_filename);
+      if ($langcode == $language_interface->id()) {
+        $display_langcode = $language_interface->id();
+      }
+    }
+
     // Next, set the most fundamental CKEditor settings.
     $external_plugin_files = $this->ckeditorPluginManager->getEnabledPluginFiles($editor);
     $settings += array(
@@ -210,7 +222,7 @@ public function getJSSettings(EditorEntity $editor) {
       'extraPlugins' => implode(',', array_keys($external_plugin_files)),
       // @todo: Remove image and link plugins from CKEditor build.
       'removePlugins' => 'image,link',
-      'language' => $language_interface->id,
+      'language' => $display_langcode,
       // Configure CKEditor to not load styles.js. The StylesCombo plugin will
       // set stylesSet according to the user's settings, if the "Styles" button
       // is enabled. We cannot get rid of this until CKEditor will stop loading
