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
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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.