Implements hook_form_alter().
function translation_entity_form_alter(array &$form, array &$form_state) {
if (($form_controller = translation_entity_form_controller($form_state)) && ($entity = $form_controller
->getEntity($form_state)) && !$entity
->isNew()) {
$controller = translation_entity_controller($entity
->entityType());
$controller
->entityFormAlter($form, $form_state, $entity);
// @todo Move the following lines to the code generating the property form
// elements once we have an official #multilingual FAPI key.
$translations = $entity
->getTranslationLanguages();
$form_langcode = $form_controller
->getFormLangcode($form_state);
// Handle fields shared between translations when there is at least one
// translation available or a new one is being created.
if (!$entity
->isNew() && (!isset($translations[$form_langcode]) || count($translations) > 1)) {
if ($entity instanceof EntityNG) {
foreach ($entity
->getPropertyDefinitions() as $property_name => $definition) {
if (isset($form[$property_name])) {
$form[$property_name]['#multilingual'] = !empty($definition['translatable']);
}
}
}
else {
foreach (field_info_instances($entity
->entityType(), $entity
->bundle()) as $instance) {
$field_name = $instance['field_name'];
$field = field_info_field($field_name);
$form[$field_name]['#multilingual'] = !empty($field['translatable']);
}
}
}
}
}