Implements hook_permission().
function translation_entity_permission() {
$permission = array(
'administer entity translation' => array(
'title' => t('Administer translation settings'),
'description' => t('Configure translatability of entities and fields.'),
),
'create entity translations' => array(
'title' => t('Create translations'),
),
'update entity translations' => array(
'title' => t('Edit translations'),
),
'delete entity translations' => array(
'title' => t('Delete translations'),
),
'translate any entity' => array(
'title' => t('Translate any entity'),
),
);
// Create a translate permission for each enabled entity type and (optionally)
// bundle.
foreach (entity_get_info() as $entity_type => $info) {
if (!empty($info['permission_granularity'])) {
$t_args = array(
'@entity_label' => drupal_strtolower(t($info['label'])),
);
switch ($info['permission_granularity']) {
case 'bundle':
foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) {
if (translation_entity_enabled($entity_type, $bundle)) {
$t_args['%bundle_label'] = isset($bundle_info['label']) ? $bundle_info['label'] : $bundle;
$permission["translate {$bundle} {$entity_type}"] = array(
'title' => t('Translate %bundle_label @entity_label', $t_args),
);
}
}
break;
case 'entity_type':
if (translation_entity_enabled($entity_type)) {
$permission["translate {$entity_type}"] = array(
'title' => t('Translate @entity_label', $t_args),
);
}
break;
}
}
}
return $permission;
}