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.


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!


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;

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

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;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.