it-swarm.com.de

Wie bekomme ich den übersetzten Begriffsnamen von tid?

Ich suche nach einer Arbeitsmethode, um den übersetzten Begriffsnamen von tid zu erhalten.

Der folgende Code gibt den ursprünglichen Begriffsnamen aber nicht die Übersetzung zurück.

global $language;

$lang_name = $language->language; // en

$term_id = 788;

$term = i18n_taxonomy_term_get_translation($term_id, $lang_name);

Example of a translated Taxonomy Term (German to English)

Die meisten Beispiele in " wie man den übersetzten Taxonomiebegriff programmgesteuert erhält? " scheinen für Drupal 7) nicht zu funktionieren.

10
mate64

Ich habe es geschafft, dass es funktioniert! Das ist mein Code

$tree = taxonomy_get_tree(9); // Your taxonomy id

foreach ($tree as $term) {
  if (module_exists('i18n_taxonomy')) { //To not break your site if module is not installed
    $term = i18n_taxonomy_localize_terms($term); // The important part!
  }
  print l($term->name, 'taxonomy/term/' . $term->tid); //print the terms
}

Das sollte es tun! Diadeuf!

17
Oumar

Sie sollten die Funktion i18n_taxonomy_localize_terms () verwenden. Dies ist der Arbeitscode für mich:

$tid = 10;
$term = taxonomy_term_load($tid);
$translated_term = i18n_taxonomy_localize_terms($term);
print $translated_term->name;
12
Florian Limmer

Ich hatte das gleiche Problem mit lokalisierten Taxonomie-Begriffsübersetzungen. Wenn Sie den Übersetzungsmodus "Mehrsprachige Optionen" auf "Lokalisieren" eingestellt haben, ist dies ziemlich einfach.

Nehmen wir an, Ihre Term-ID lautet 788 wie bei den OPs, und tun Sie dann einfach etwas in diese Richtung:

  $i18n_object = i18n_get_object('taxonomy_term', 788);
  $target_langcode = 'de';
  $translated_term = $i18n_object->localize($target_langcode);
11
B2F

Der Knibals-Code zeigt, wie ein vollständiger Vokabularbaum übersetzt wird. Dieses Codefragment zeigt, wie ein bestimmter Begriff übersetzt wird.

$term = taxonomy_term_load($tid);
$translated_term = i18n_taxonomy_term_get_translation($term, $langcode);

Diese Frage wurde hier bereits beantwortet: wie erhält man den übersetzten Taxonomiebegriff programmgesteuert?

1
batigolix

Wenn Sie es als Funktion verwenden möchten ..

function _get_term_name_translate($tid) {
  $term = i18n_taxonomy_localize_terms(taxonomy_term_load($tid));
  return $term->name;
}
0
a.alshamiri