You are here

function lingotek_get_languages in Lingotek Translation 7.7

4 calls to lingotek_get_languages()
lingotek_delete_field_translations in ./lingotek.util.inc
Delete translations for field based entities
lingotek_entity_disassociate_form_submit in ./lingotek.bulk_grid.inc
Submit handler for the lingotek_entity_disassociate form.
lingotek_grid_query_status in ./lingotek.bulk_grid.inc
lingotek_lang_icons in ./lingotek.bulk_grid.inc

File

./lingotek.util.inc, line 2759
Utility functions.

Code

function lingotek_get_languages($entity_type, $entity_id) {
  if ($entity_type == 'menu_link') {
    $translations = array();
    $entity = menu_link_load($entity_id);
    $menu_langcode = $entity['language'];
    $tsid = $entity['i18n_tsid'];
    $translation_set = i18n_translation_set_load($tsid, 'menu_link');
    if ($translation_set) {
      $translations = $translation_set
        ->get_translations();
    }
    else {
      $translations[$menu_langcode] = TRUE;
    }
    return array_keys($translations);
  }
  $existing_translations = array();
  $drupal_langcodes = language_list();
  $entity = lingotek_entity_load_single($entity_type, $entity_id);

  // check for node-based translations
  if ($entity_type == 'node' && module_exists('translation')) {
    $target_nodes = lingotek_node_get_translations($entity_id);
    foreach ($target_nodes as $langcode => $node_info) {
      $existing_translations[$langcode] = TRUE;
    }
  }

  // check for field-based translations
  foreach ($entity as $k => $v) {
    if (is_array($v) && !empty($v)) {
      foreach (array_keys($v) as $langcode) {
        if (!empty($drupal_langcodes[$langcode])) {
          $existing_translations[$langcode] = TRUE;
        }
      }
    }
  }
  return array_keys($existing_translations);
}