content_translation_language_configuration_element_validate($element, FormStateInterface $form_state, array $form)
Form validation handler for element added with content_translation_language_configuration_element_process().
Checks whether translation can be enabled: if language is set to one of the special languages and language selector is not hidden, translation cannot be enabled.
See also
content_translation_language_configuration_element_submit()
File
- core/modules/content_translation/content_translation.module, line 508
- Allows entities to be translated into different languages.
Code
function content_translation_language_configuration_element_validate($element, FormStateInterface $form_state, array $form) { $key = $form_state->get(['content_translation', 'key']); $values = $form_state->getValue($key); if (!$values['language_alterable'] && $values['content_translation'] && \Drupal::languageManager()->isLanguageLocked($values['langcode'])) { foreach (\Drupal::languageManager()->getLanguages(LanguageInterface::STATE_LOCKED) as $language) { $locked_languages[] = $language->getName(); } // @todo Set the correct form element name as soon as the element parents // are correctly set. We should be using NestedArray::getValue() but for // now we cannot. $form_state->setErrorByName('', t('"Show language selector" is not compatible with translating content that has default language: %choice. Either do not hide the language selector or pick a specific language.', array('%choice' => $locked_languages[$values['langcode']]))); } }
Please login to continue.