diff --git a/sites/all/modules/contrib/i18n/i18ntaxonomy/i18ntaxonomy.module b/sites/all/modules/contrib/i18n/i18ntaxonomy/i18ntaxonomy.module
--- i18ntaxonomy/i18ntaxonomy.module
+++ i18ntaxonomy/i18ntaxonomy.module
@@ -401,7 +401,9 @@
break;
case I18N_TAXONOMY_LOCALIZE:
+ $tid = $term->tid;
+
$form['language'] = array(
'#type' => 'value',
'#value' => ''
);
@@ -404,9 +406,76 @@
$form['language'] = array(
'#type' => 'value',
'#value' => ''
);
- $form['identification']['name']['#description'] .= ' '. t('This name will be localizable. You can translate it using the translate interface pages.', array('@translate-interface' => url('admin/build/translate'))) .'';
- $form['identification']['description']['#description'] .= ' '. t('This description will be localizable. You can translate it using the translate interface pages.', array('@translate-interface' => url('admin/build/translate'))) .'';
+ $form['identification']['i18ntaxonomy'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Translations'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE,
+ );
+ if (isset($tid)) {
+ if (empty($form['identification']['description']['#default_value'])) {
+ $form['identification']['i18ntaxonomy']['#description'] = t('Translation links for description will be available as soon as the description contains a non empty value.');
+ }
+ }
+ else {
+ $form['identification']['i18ntaxonomy']['#collapsed'] = TRUE;
+ $form['identification']['i18ntaxonomy']['#description'] = t('Translation links will be available as soon as the term has been created.');
+ }
+
+ $form['identification']['i18ntaxonomy']['list'] = array(
+ '#value' => chr(32), // required to be processed
+ '#prefix' => '
',
+ );
+ foreach(language_list() as $langcode => $language) {
+ $form['identification']['i18ntaxonomy']['list'][$langcode] = array(
+ '#value' => $langcode,
+ //'#description' => $langcode,
+ '#prefix' => '',
+ '#suffix' => '',
+ 'name' => array('#prefix' => '/ ' . t('name:') . ' '),
+ 'description' => array('#prefix' => ', ' . t('description') . ': '),
+ );
+ if ($langcode == language_default('language')) {
+ $form['identification']['i18ntaxonomy']['list'][$langcode]['name']['#value'] = $form['identification']['name']['#default_value'];
+ $form['identification']['i18ntaxonomy']['list'][$langcode]['description']['#value'] = $form['identification']['description']['#default_value'];
+ }
+ }
+
+ $query_tr = 'SELECT translation, language FROM {locales_target} WHERE lid = %d';
+ $query_lid = "SELECT lid FROM {locales_source} WHERE location = '%s' LIMIT 1";
+ $destination = drupal_get_destination();
+ foreach(array('name', 'description') as $elem_id) {
+ $location = 'term:' . $tid . ':' . $elem_id;
+
+ // avoid apix_db dependency => traditional manual query without caching the result
+ //$lid = apix_db_colum2colum('lid', 'locales_source', 'location', $location);
+ $lid = db_result(db_query($query_lid, $location));
+
+ if (empty($form['identification'][$elem_id]['#default_value'])) continue;
+
+ $key = "taxonomy:term:$tid:$elem_id";
+ //$value = $form['identification'][$elem_id]['#default_value'];
+ $missing_languages = language_list();
+ unset($missing_languages[language_default('language')]);
+
+ $result = db_query($query_tr, $lid);
+ while ($translation = db_fetch_object($result)) {
+ $langcode = $translation->language;
+ $translated = $translation->translation;
+ $translated = l($translated, 'admin/build/translate/edit/' . $lid);
+ $form['identification']['i18ntaxonomy']['list'][$langcode][$elem_id]['#value'] .= $translated;
+ unset($missing_languages[$langcode]);
+ }
+
+ // would be incorrect to use t($elem_id), since t() function is intended for constant strings only
+ $link_text = ($elem_id == 'name') ? t('name') : t('description');
+ foreach($missing_languages as $langcode => $language) {
+ $translated = '' . l($link_text, 'admin/build/translate/edit/' . $lid) . '';
+ $form['identification']['i18ntaxonomy']['list'][$langcode][$elem_id]['#value'] .= $translated;
+ }
+ }
break;
case I18N_TAXONOMY_NONE: