Currently, the translation.module 'integrates' the translation links into $links:
Line 153+ from translation.module: http://api.drupal.org/api/function/translation_link/6
function translation_link($type, $node = NULL, $teaser = FALSE) {
$links = array();
if ($type == 'node' && ($node->tnid) && $translations = translation_node_get_translations($node->tnid)) {
// Do not show link to the same node.
unset($translations[$node->language]);
$languages = language_list();
foreach ($languages as $langcode => $language) {
if (isset($translations[$langcode])) {
$links["node_translation_$langcode"] = array(
'title' => $language->native,
'href' => 'node/'. $translations[$langcode]->nid,
'language' => $language,
'attributes' => array('title' => $translations[$langcode]->title, 'class' => 'translation-link')
);
}
}
}
return $links;
}
Line 332+ from translation.module: http://api.drupal.org/api/function/translation_translation_link_alter/6
/**
* Implementation of hook_translation_link_alter().
*
* Replaces links with pointers to translated versions of the content.
*/
function translation_translation_link_alter(&$links, $path) {
if ($paths = translation_path_get_translations($path)) {
foreach ($links as $langcode => $link) {
if (isset($paths[$langcode])) {
// Translation in a different node.
$links[$langcode]['href'] = $paths[$langcode];
}
else {
// No translation in this language, or no permission to view.
unset($links[$langcode]);
}
}
}
}
This 'integration' disables themes to move those translation links (on its own/ separately) to another position/ location of webpages. For example:
Lines 27 in themes\garland\node.tpl.php
<?php if ($links): ?>
<div class="links"><?php print $links; ?></div>
<?php endif; ?>
This request was first requested here, though for another module: http://groups.drupal.org/node/10143#comment-183523
Comments
Comment #1
cesar.brod@gmail.com commentedSubscribing for D7. At least it seems it is still not possible to work the translation links positioning in an easy way... If so, I will be glad with any pointer!
Comment #2
mdupontThese contextual links for a node are stored in $node->link, it makes perfect sense to have the translation links among them. However if you need to split the translation links out in a separate region of a theme, you can do it in a THEME_preprocess_node() function in the template.php file of your theme.