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