function content_translation_form_language_content_settings_validate
Same name in other branches
- 9 core/modules/content_translation/content_translation.admin.inc \content_translation_form_language_content_settings_validate()
- 10 core/modules/content_translation/content_translation.admin.inc \content_translation_form_language_content_settings_validate()
- 11.x core/modules/content_translation/content_translation.admin.inc \content_translation_form_language_content_settings_validate()
Form validation handler for content_translation_admin_settings_form().
See also
content_translation_admin_settings_form_submit()
1 string reference to 'content_translation_form_language_content_settings_validate'
- _content_translation_form_language_content_settings_form_alter in core/
modules/ content_translation/ content_translation.admin.inc - (proxied) Implements hook_form_FORM_ID_alter().
File
-
core/
modules/ content_translation/ content_translation.admin.inc, line 315
Code
function content_translation_form_language_content_settings_validate(array $form, FormStateInterface $form_state) {
$settings =& $form_state->getValue('settings');
foreach ($settings as $entity_type => $entity_settings) {
foreach ($entity_settings as $bundle => $bundle_settings) {
if (!empty($bundle_settings['translatable'])) {
$name = "settings][{$entity_type}][{$bundle}][translatable";
$translatable_fields = isset($settings[$entity_type][$bundle]['fields']) ? array_filter($settings[$entity_type][$bundle]['fields']) : FALSE;
if (empty($translatable_fields)) {
$t_args = [
'%bundle' => $form['settings'][$entity_type][$bundle]['settings']['#label'],
];
$form_state->setErrorByName($name, t('At least one field needs to be translatable to enable %bundle for translation.', $t_args));
}
$values = $bundle_settings['settings']['language'];
if (empty($values['language_alterable']) && \Drupal::languageManager()->isLanguageLocked($values['langcode'])) {
foreach (\Drupal::languageManager()->getLanguages(LanguageInterface::STATE_LOCKED) as $language) {
$locked_languages[] = $language->getName();
}
$form_state->setErrorByName($name, t('Translation is not supported if language is always one of: @locked_languages', [
'@locked_languages' => implode(', ', $locked_languages),
]));
}
}
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.