Form validation handler for translation_entity_admin_settings_form().
translation_entity_admin_settings_form_submit()
function translation_entity_form_language_content_settings_validate(array $form, array &$form_state) {
$settings =& $form_state['values']['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 = array(
'%bundle' => $form['settings'][$entity_type][$bundle]['settings']['#label'],
);
form_set_error($name, t('At least one field needs to be translatable to enable %bundle for translation.', $t_args));
}
$values = $bundle_settings['settings']['language'];
if (language_is_locked($values['langcode']) && empty($values['language_show'])) {
foreach (language_list(Language::STATE_LOCKED) as $language) {
$locked_languages[] = $language->name;
}
form_set_error($name, t('Translation is not supported if language is always one of: @locked_languages', array(
'@locked_languages' => implode(', ', $locked_languages),
)));
}
}
}
}
}