diff -u b/core/modules/ckeditor/ckeditor.libraries.yml b/core/modules/ckeditor/ckeditor.libraries.yml
--- b/core/modules/ckeditor/ckeditor.libraries.yml
+++ b/core/modules/ckeditor/ckeditor.libraries.yml
@@ -73,0 +74,11 @@
+
+drupal.ckeditor.language.admin:
+  version: VERSION
+  js:
+    js/ckeditor.language.admin.js: {}
+  dependencies:
+    - core/jquery
+    - core/drupal
+    - core/jquery.once
+    - core/drupal.vertical-tabs
+    - core/drupalSettings
diff -u b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php
--- b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php
+++ b/core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php
@@ -8,8 +8,11 @@
 namespace Drupal\ckeditor\Plugin\CKEditorPlugin;
 
 use Drupal\ckeditor\CKEditorPluginBase;
+use Drupal\ckeditor\CKEditorPluginConfigurableInterface;
+use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageManager;
 use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Url;
 use Drupal\editor\Entity\Editor;
 
 /**
@@ -20,7 +23,7 @@
  *   label = @Translation("Language")
  * )
  */
-class Language extends CKEditorPluginBase {
+class Language extends CKEditorPluginBase implements CKEditorPluginConfigurableInterface {
 
   /**
    * {@inheritdoc}
@@ -51,7 +54,11 @@
    */
   public function getConfig(Editor $editor) {
     $language_list = array();
-    $predefined_languages = LanguageManager::getStandardLanguageList();
+    $settings = $editor->getSettings();
+    $predefined_languages = ($settings['plugins']['language']['list_type'] == 'all') ?
+      LanguageManager::getStandardLanguageList() :
+      LanguageManager::getUnitedNationsLanguageList();
+
     foreach ($predefined_languages as $langcode => $language) {
       $english_name = $language[0];
       $direction = empty($language[2]) ? NULL : $language[2];
@@ -62,6 +69,7 @@
         $language_list[$english_name] = $langcode . ':' . $english_name;
       }
     }
+
     // Sort on full language name.
     ksort($language_list);
     $config = array(
@@ -84,2 +92,30 @@
 
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsForm(array $form, FormStateInterface $form_state, Editor $editor) {
+    $settings = $editor->getSettings();
+
+    $predefined_languages = LanguageManager::getStandardLanguageList();
+    $form['list_type'] = array(
+      '#title' => t('Language list type'),
+      '#title_display' => 'invisible',
+      '#type' => 'select',
+      '#options' => array(
+        'un' => t('United Nations subset'),
+        'all' => t('All @count languages', array('@count' => sizeof($predefined_languages))),
+      ),
+      '#default_value' => $settings['plugins']['language']['list_type'],
+      '#description' => t('The list of languages to show in the language dropdown. The basic list will only show the <a href="@url">six official languages of the UN</a>. The extended list will show all @count languages that are available in Drupal.', array(
+        '@url' => Url::fromUri('http://www.un.org/en/aboutun/languages.shtml/'),
+        '@count' => sizeof($predefined_languages),
+      )),
+      '#attached' => array(
+        'library' => array('ckeditor/drupal.ckeditor.language.admin'),
+      ),
+    );
+
+    return $form;
+  }
+
 }
diff -u b/core/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php b/core/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php
--- b/core/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php
+++ b/core/modules/ckeditor/tests/src/Unit/Plugin/CKEditorPlugin/LanguageTest.php
@@ -7,6 +7,8 @@
 
 /**
  * @coversDefaultClass \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
+ *
+ * @group Foo
  */
 class LanguageTest extends UnitTestCase {
 
@@ -25,18 +27,38 @@
   }
 
   /**
+   * Provides a list of configs to test.
+   */
+  public function providerGetConfig() {
+    return [
+      ['un', 6],
+      ['all', 94],
+    ];
+  }
+
+  /**
    * @covers ::getConfig
+   *
+   * @dataProvider providerGetConfig
    */
-  public function testGetConfig() {
+  public function testGetConfig($list_type, $expected_number) {
     $editor = $this->getMockBuilder('Drupal\editor\Entity\Editor')
       ->disableOriginalConstructor()
       ->getMock();
+    $editor->expects($this->once())
+      ->method('getSettings')
+      ->willReturn(['plugins' => ['language' => ['list_type' => $list_type]]]);
 
     $config = $this->plugin->getConfig($editor);
 
     $this->assertInternalType('array', $config);
-    $this->assertTrue(in_array('nl:Dutch', $config['language_list']));
     $this->assertTrue(in_array('ar:Arabic:rtl', $config['language_list']));
+    $this->assertTrue(in_array('zh-hans:Chinese, Simplified', $config['language_list']));
+    $this->assertTrue(in_array('en:English', $config['language_list']));
+    $this->assertTrue(in_array('fr:French', $config['language_list']));
+    $this->assertTrue(in_array('ru:Russian', $config['language_list']));
+    $this->assertTrue(in_array('ar:Arabic:rtl', $config['language_list']));
+    $this->assertEquals($expected_number, count($config['language_list']));
   }
 
 }
only in patch2:
unchanged:
--- a/core/lib/Drupal/Core/Language/LanguageManager.php
+++ b/core/lib/Drupal/Core/Language/LanguageManager.php
@@ -364,6 +364,28 @@ public static function getStandardLanguageList() {
   }
 
   /**
+   * The official languages used at the United Nations with
+   * their English and native names.
+   *
+   * This list is bases on http://www.un.org/en/aboutun/languages.shtml/ and
+   * uses the same format as getStandardLanguageList().
+   *
+   * @return array
+   *   An array of language code to language name information.
+   *   Language name information itself is an array of English and native names.
+   */
+  public static function getUnitedNationsLanguageList() {
+    return array(
+      'ar' => array('Arabic', /* Left-to-right marker "‭" */ 'العربية', LanguageInterface::DIRECTION_RTL),
+      'zh-hans' => array('Chinese, Simplified', '简体中文'),
+      'en' => array('English', 'English'),
+      'fr' => array('French', 'Français'),
+      'ru' => array('Russian', 'Русский'),
+      'es' => array('Spanish', 'Español'),
+    );
+  }
+
+  /**
    * {@inheritdoc}
    *
    * This function is a noop since the configuration cannot be overridden by
only in patch2:
unchanged:
--- a/core/modules/ckeditor/config/schema/ckeditor.schema.yml
+++ b/core/modules/ckeditor/config/schema/ckeditor.schema.yml
@@ -41,3 +41,8 @@ ckeditor.plugin.stylescombo:
     styles:
       type: string
       label: 'List of styles'
+
+# Plugin \Drupal\ckeditor\Plugin\ckeditor\plugin\Language
+ckeditor.plugin.language:
+  type: string
+  label: 'Language list type'
only in patch2:
unchanged:
--- /dev/null
+++ b/core/modules/ckeditor/js/ckeditor.language.admin.js
@@ -0,0 +1,16 @@
+(function ($, Drupal, drupalSettings) {
+
+  "use strict";
+
+  /**
+   * Provides the summary for the "language" plugin settings vertical tab.
+   */
+  Drupal.behaviors.ckeditorLanguageSettingsSummary = {
+    attach: function () {
+      $('#edit-editor-settings-plugins-language').drupalSetSummary(function (context) {
+        return $('#edit-editor-settings-plugins-language-list-type option:selected').text();
+      });
+    }
+  };
+
+})(jQuery, Drupal, drupalSettings);
