Form submission handler for translation_entity_admin_settings_form().
translation_entity_admin_settings_form_validate()
function translation_entity_form_language_content_settings_submit(array $form, array &$form_state) {
$entity_types = $form_state['values']['entity_types'];
$settings =& $form_state['values']['settings'];
// If an entity type is not translatable all its bundles and fields must be
// marked as non-translatable. Similarly, if a bundle is made non-translatable
// all of its fields will be not translatable.
foreach ($settings as $entity_type => &$entity_settings) {
foreach ($entity_settings as $bundle => &$bundle_settings) {
if (!empty($bundle_settings['translatable'])) {
$bundle_settings['translatable'] = $bundle_settings['translatable'] && $entity_types[$entity_type];
}
if (!empty($bundle_settings['fields'])) {
foreach ($bundle_settings['fields'] as $field_name => $translatable) {
$bundle_settings['fields'][$field_name] = $translatable && $bundle_settings['translatable'];
// If we have column settings and no column is translatable, no point
// in making the field translatable.
if (isset($bundle_settings['columns'][$field_name]) && !array_filter($bundle_settings['columns'][$field_name])) {
$bundle_settings['fields'][$field_name] = FALSE;
}
}
}
}
}
_translation_entity_update_field_translatability($settings);
drupal_set_message(t('Settings successfully updated.'));
}