Bagaimana cara mendapatkan istilah yang diterjemahkan oleh tid?

10

Saya mencari metode kerja untuk mendapatkan istilah yang diterjemahkan oleh tid.

Kode berikut mengembalikan nama istilah asli tetapi bukan terjemahannya.

global $language;

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

$term_id = 788;

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

Contoh Istilah Taksonomi yang diterjemahkan (Bahasa Jerman ke Bahasa Inggris)

Sebagian besar contoh disediakan dalam " bagaimana cara mendapatkan istilah taksonomi yang diterjemahkan secara terprogram? " Tampaknya tidak berfungsi untuk Drupal 7.

mate64
sumber
saya pikir kode harus bekerja tetapi parameter pertama harus menjadi objek istilah dan bukan istilah id ...
lenni
@lenni Sayangnya itu tidak berhasil. Drupal mengembalikan objek yang sama kembali.
mate64

Jawaban:

17

Saya berhasil membuatnya bekerja! Ini kode saya

$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
}

Itu harus dilakukan! Diadeuf!

Oumar
sumber
12

Anda harus menggunakan fungsi i18n_taxonomy_localize_terms (). Ini kode kerja untuk saya:

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

Saya memiliki masalah yang sama dengan terjemahan istilah taksonomi lokal. Jika mode terjemahan "Opsi multibahasa" Anda disetel ke "Lokalisasi", maka itu cukup mudah.

Katakanlah id jangka Anda adalah 788 seperti OP, lalu lakukan sesuatu di sepanjang baris ini:

  $i18n_object = i18n_get_object('taxonomy_term', 788);
  $target_langcode = 'de';
  $translated_term = $i18n_object->localize($target_langcode);
B2F
sumber
1
Itu bekerja untuk saya !, aneh bahwa fungsi i18n_taxonomy_localize_terms tidak. thx
GwenM
Bekerja dengan sempurna. Seperti fungsi @Namari, i18n_taxonomy_localize_terms tampaknya tidak melakukan tugasnya.
jan
0

Jika Anda ingin menggunakannya sebagai Function ..

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