Access callback for the translation addition page.
\Drupal\Core\Entity\EntityInterface $entity: The entity being translated.
\Drupal\Core\Language\Language $source: (optional) The language of the values being translated. Defaults to the entity language.
\Drupal\Core\Language\Language $target: (optional) The language of the translated values. Defaults to the current content language.
function translation_entity_add_access(EntityInterface $entity, Language $source = NULL, Language $target = NULL) {
$source = !empty($source) ? $source : $entity
->language();
$target = !empty($target) ? $target : language(Language::TYPE_CONTENT);
$translations = $entity
->getTranslationLanguages();
$languages = language_list();
return $source->langcode != $target->langcode && isset($languages[$source->langcode]) && isset($languages[$target->langcode]) && !isset($translations[$target->langcode]) && translation_entity_access($entity, 'create');
}