/** * {@inheritdoc} */ public function getConfig(Editor $editor) { $language_list = []; $config = ['language_list' => 'un']; $settings = $editor->getSettings(); if (isset($settings['plugins']['language'])) { $config = $settings['plugins']['language']; } $predefined_languages = $config['language_list'] === 'all' ? LanguageManager::getStandardLanguageList() : LanguageManager::getUnitedNationsLanguageList(); // Generate the language_list setting as expected by the CKEditor Language // plugin, but key the values by the full language name so that we can sort // them later on. foreach ($predefined_languages as $langcode => $language) { $english_name = $language[0]; $direction = empty($language[2]) ? NULL : $language[2]; if ($direction === LanguageInterface::DIRECTION_RTL) { $language_list[$english_name] = $langcode . ':' . $english_name . ':rtl'; } else { $language_list[$english_name] = $langcode . ':' . $english_name; } } // Sort on full language name. ksort($language_list); $config = ['language_list' => array_values($language_list)]; return $config; }
/** * Provides a list of configs to test. */ public function providerGetConfig() { return [['un', count(LanguageManager::getUnitedNationsLanguageList())], ['all', count(LanguageManager::getStandardLanguageList())]]; }