function translation_entity_permission

Implements hook_permission().

File

drupal/core/modules/translation_entity/translation_entity.module, line 547
Allows entities to be translated into different languages.

Code

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;
}