Page callback for the translation addition page.
EntityInterface $entity: The entity being translated.
Language $source: (optional) The language of the values being translated. Defaults to the entity language.
Language $target: (optional) The language of the translated values. Defaults to the current content language.
array A processed form array ready to be rendered.
function translation_entity_add_page(EntityInterface $entity, Language $source = NULL, Language $target = NULL) {
$source = !empty($source) ? $source : $entity
->language();
$target = !empty($target) ? $target : language(Language::TYPE_CONTENT);
// @todo Exploit the upcoming hook_entity_prepare() when available.
translation_entity_prepare_translation($entity, $source, $target);
$info = $entity
->entityInfo();
$operation = isset($info['default_operation']) ? $info['default_operation'] : 'default';
$form_state['langcode'] = $target->langcode;
$form_state['translation_entity']['source'] = $source;
$form_state['translation_entity']['target'] = $target;
$controller = translation_entity_controller($entity
->entityType());
$form_state['translation_entity']['translation_form'] = !$controller
->getAccess($entity, 'update');
return entity_get_form($entity, $operation, $form_state);
}