class Language
Same name in this branch
- 10 core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
- 10 core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
- 10 core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
- 10 core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
Same name in other branches
- 9 core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
- 9 core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
- 9 core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Language.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Language
- 9 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
- 9 core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
- 9 core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
- 8.9.x core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
- 8.9.x core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
- 8.9.x core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
- 8.9.x core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
- 8.9.x core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
- 11.x core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
- 11.x core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
- 11.x core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Language.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Language
- 11.x core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
- 11.x core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
CKEditor 5 Language plugin.
@internal Plugin classes are internal.
Hierarchy
- class \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Language extends \Drupal\ckeditor5\Plugin\CKEditor5PluginDefault implements \Drupal\ckeditor5\Plugin\CKEditor5PluginConfigurableInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface uses \Drupal\ckeditor5\Plugin\CKEditor5PluginConfigurableTrait
Expanded class hierarchy of Language
1 file declares its use of Language
- LanguagePluginTest.php in core/
modules/ ckeditor5/ tests/ src/ Unit/ LanguagePluginTest.php
397 string references to 'Language'
- AccountSettingsForm::buildForm in core/
modules/ user/ src/ AccountSettingsForm.php - AssetControllerBase::deliver in core/
modules/ system/ src/ Controller/ AssetControllerBase.php - Generates an aggregate, given a filename.
- block.block.umami_languageswitcher.yml in core/
profiles/ demo_umami/ config/ install/ block.block.umami_languageswitcher.yml - core/profiles/demo_umami/config/install/block.block.umami_languageswitcher.yml
- BlockContentTypeForm::form in core/
modules/ block_content/ src/ BlockContentTypeForm.php - BlockForm::buildVisibilityInterface in core/
modules/ block/ src/ BlockForm.php - Helper function for building the visibility UI form.
File
-
core/
modules/ ckeditor5/ src/ Plugin/ CKEditor5Plugin/ Language.php, line 27
Namespace
Drupal\ckeditor5\Plugin\CKEditor5PluginView source
class Language extends CKEditor5PluginDefault implements CKEditor5PluginConfigurableInterface, ContainerFactoryPluginInterface {
use CKEditor5PluginConfigurableTrait;
/**
* Language constructor.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin ID for the plugin instance.
* @param \Drupal\ckeditor5\Plugin\CKEditor5PluginDefinition $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
* The language manager.
* @param \Drupal\Core\Routing\RouteProviderInterface $routeProvider
* The route provider.
*/
public function __construct(array $configuration, string $plugin_id, CKEditor5PluginDefinition $plugin_definition, LanguageManagerInterface $languageManager, RouteProviderInterface $routeProvider) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container->get('language_manager'), $container->get('router.route_provider'));
}
/**
* {@inheritdoc}
*/
public function getDynamicPluginConfig(array $static_plugin_config, EditorInterface $editor) : array {
$languages = NULL;
switch ($this->configuration['language_list']) {
case 'site_configured':
$configured_languages = $this->languageManager
->getLanguages();
$languages = [];
foreach ($configured_languages as $language) {
$languages[$language->getId()] = [
$language->getName(),
'',
$language->getDirection(),
];
}
break;
case 'all':
$languages = LanguageManager::getStandardLanguageList();
break;
case 'un':
$languages = 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.
$language_list = [];
foreach ($languages as $langcode => $language) {
$english_name = $language[0];
$direction = empty($language[2]) ? NULL : $language[2];
$language_list[$english_name] = [
'title' => $english_name,
'languageCode' => $langcode,
];
if ($direction === LanguageInterface::DIRECTION_RTL) {
$language_list[$english_name]['textDirection'] = 'rtl';
}
}
// Sort on full language name.
ksort($language_list);
$dynamic_plugin_config = $static_plugin_config;
$dynamic_plugin_config['language']['textPartLanguage'] = array_values($language_list);
return $dynamic_plugin_config;
}
/**
* {@inheritdoc}
*
* @see \Drupal\editor\Form\EditorImageDialog
* @see editor_image_upload_settings_form()
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$configured = count($this->languageManager
->getLanguages());
$predefined = count(LanguageManager::getStandardLanguageList());
$united_nations = count(LanguageManager::getUnitedNationsLanguageList());
$language_list_description_args = [
':united-nations-official' => 'https://www.un.org/en/sections/about-un/official-languages',
'@count_predefined' => $predefined,
'@count_united_nations' => $united_nations,
'@count_configured' => $configured,
];
// If Language is enabled, link to the configuration route.
if ($this->routeProvider
->getRoutesByNames([
'entity.configurable_language.collection',
])) {
$language_list_description = $this->t('The list of languages in the CKEditor "Language" dropdown can present the <a href=":united-nations-official">@count_united_nations official languages of the UN</a>, all @count_predefined languages predefined in Drupal, or the <a href=":admin-configure-languages">@count_configured languages configured for this site</a>.', $language_list_description_args + [
':admin-configure-languages' => Url::fromRoute('entity.configurable_language.collection')->toString(),
]);
}
else {
$language_list_description = $this->t('The list of languages in the CKEditor "Language" dropdown can present the <a href=":united-nations-official">@count_united_nations official languages of the UN</a>, all @count_predefined languages predefined in Drupal, or the languages configured for this site.', $language_list_description_args);
}
$form['language_list'] = [
'#title' => $this->t('Language list'),
'#title_display' => 'invisible',
'#type' => 'select',
'#options' => [
'un' => $this->t("United Nations' official languages (@count)", [
'@count' => $united_nations,
]),
'all' => $this->t('Drupal predefined languages (@count)', [
'@count' => $predefined,
]),
'site_configured' => $this->t("Site-configured languages (@count)", [
'@count' => $configured,
]),
],
'#default_value' => $this->configuration['language_list'],
'#description' => $language_list_description,
];
return $form;
}
/**
* {@inheritdoc}
*/
public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
}
/**
* {@inheritdoc}
*/
public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
$this->configuration['language_list'] = $form_state->getValue('language_list');
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return [
'language_list' => 'un',
];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
CKEditor5PluginConfigurableTrait::getConfiguration | public | function | |||
CKEditor5PluginConfigurableTrait::setConfiguration | public | function | |||
Language::buildConfigurationForm | public | function | |||
Language::create | public static | function | Overrides ContainerFactoryPluginInterface::create | ||
Language::defaultConfiguration | public | function | |||
Language::getDynamicPluginConfig | public | function | Overrides CKEditor5PluginDefault::getDynamicPluginConfig | ||
Language::submitConfigurationForm | public | function | |||
Language::validateConfigurationForm | public | function | |||
Language::__construct | public | function | Language constructor. | Overrides CKEditor5PluginDefault::__construct | |
PluginInspectionInterface::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | 6 | |
PluginInspectionInterface::getPluginId | public | function | Gets the plugin ID of the plugin instance. | 2 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.