Tid द्वारा अनुवादित शब्द कैसे प्राप्त करें?


10

मैं एक के लिए देख रहा हूँ काम कर विधि करने के लिए अनुवाद अवधि नाम से tid

निम्न कोड मूल शब्द का नाम देता है लेकिन अनुवाद नहीं।

global $language;

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

$term_id = 788;

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

अनूदित टैक्सोनॉमी टर्म का उदाहरण (जर्मन से अंग्रेज़ी)

अधिकांश उदाहरण " प्रोग्राम किए गए टैक्सोनॉमी शब्द को कैसे प्राप्त करें? "


मुझे लगता है कि कोड काम करना चाहिए, लेकिन पहला पैरामीटर एक टर्म ऑब्जेक्ट होना चाहिए और एक शब्द आईडी नहीं होना चाहिए ...
lenni

@ लेन्नी दुर्भाग्य से यह काम नहीं करता है। द्रुपाल उसी वस्तु को वापस करता है।
मत्ती ६४

जवाबों:


17

मैं इसे काम करने में कामयाब रहा! यह मेरा कोड है

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

कि यह करो! Diadeuf!


12

आपको i18n_taxonomy_localize_terms () फ़ंक्शन का उपयोग करना चाहिए। यह मेरे लिए काम करने वाला कोड है:

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

11

स्थानीयकृत टैक्सोनॉमी टर्म ट्रांसलेशन के साथ मुझे भी यही समस्या थी। यदि आपके पास "स्थानीयकरण" के लिए अपना "बहुभाषी विकल्प" अनुवाद मोड है, तो यह बहुत सीधा है।

मान लें कि आपकी टर्म आईडी 788 है जो ओपी की तरह है, तो बस इन लाइनों के साथ कुछ करें:

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

1
यह मेरे लिए काम किया !, अजीब बात है कि फ़ंक्शन i18n_taxonomy_localize_terms ने नहीं किया। thx
GwenM

सही काम किया। @Namari फंक्शन की तरह i18n_taxonomy_localize_terms अपना काम नहीं करता था।
जून २

1

Knibals कोड दिखाता है कि एक पूर्ण शब्दावली ट्री का अनुवाद कैसे किया जाता है। यह कोड स्निपेट दिखाता है कि एक विशिष्ट शब्द का अनुवाद कैसे किया जाए।

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

इस सवाल का पहले से ही यहाँ उत्तर दिया गया था: प्रोग्राम किए गए टैक्सोनॉमी शब्द का अनुवाद कैसे किया जाए?


0

यदि आप इसे फ़ंक्शन के रूप में उपयोग करना चाहते हैं ..

function _get_term_name_translate($tid) {
  $term = i18n_taxonomy_localize_terms(taxonomy_term_load($tid));
  return $term->name;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.