प्रोग्राम भाषा में अनुवादित कर शब्दावलियों को वर्तमान में पुनर्प्राप्त करें


11

मैं D8 के साथ प्रोग्राम भाषा के संदर्भ से अनुवादित (यदि इस शब्द के लिए अनुवाद मौजूद है) एक निर्दिष्ट टैक्सोनॉमी शब्द कैसे प्राप्त करूं?


जवाबों:


15

निम्नलिखित कोड का उपयोग करें:

$curr_langcode = \Drupal::languageManager()->getCurrentLanguage(\Drupal\Core\Language\LanguageInterface::TYPE_CONTENT)->getId();

// retrieve term
$taxonomy_term = \Drupal\taxonomy\Entity\Term::load($tid);

// retrieve the translated taxonomy term in specified language ($curr_langcode) with fallback to default language if translation not exists
$taxonomy_term_trans = \Drupal::service('entity.repository')->getTranslationFromContext($taxonomy_term, $curr_langcode);

// get the value of the field "myfield"
$myfield_translated = $taxonomy_term_trans->myfield->value;

6

आपको language_manager के लिए पहली पंक्ति में सेवा का उपयोग करना चाहिए (चाहिए)। इसके अलावा मैं उपयोग टैग का उपयोग करके कोड को छोटा कर दूंगा।

फ़ाइल की शुरुआत में कहीं:

use Drupal\taxonomy\Entity\Term;
use Drupal\Core\Language\LanguageInterface;

और बाद में किसी फ़ंक्शन में कोड में

$curr_langcode = \Drupal::service('language_manager')->getCurrentLanguage(LanguageInterface::TYPE_CONTENT)->getId();
// Retrieve term.
$taxonomy_term = Term::load($tid);
// Retrieve the translated taxonomy term in specified language
// ($curr_langcode) with fallback to default language if translation not
// exists.
$taxonomy_term_trans = \Drupal::service('entity.repository')->getTranslationFromContext($taxonomy_term, $curr_langcode);
// Get the value of the field "myfield".
$myfield_translated = $taxonomy_term_trans->myfield->value;

2

ऊपर दिए गए स्निपेट अप्रयुक्त शब्दों को भी लौटा देंगे। आपको यह देखना होगा कि क्या किसी शब्द का हैशट्रैलेशन फ़ंक्शन के साथ अनुवाद किया गया है:

$vocabulary = 'MY_VOCABULARY_NAME';
$language =  \Drupal::languageManager()->getCurrentLanguage()->getId();
$query = \Drupal::entityQuery('taxonomy_term');
$query->condition('vid', $vocabulary);
$query->sort('weight');
$tids = $query->execute();
$terms = \Drupal\taxonomy\Entity\Term::loadMultiple($tids);
$termList = array();

foreach($terms as $term) {
    if($term->hasTranslation($language)){
        $translated_term = \Drupal::service('entity.repository')->getTranslationFromContext($term, $language);
        $tid = $term->id();
        $termList[$tid] = $translated_term->getName();
    }
}

// To print a list of translated terms. 
foreach($termList as $tid => $name) {
 print $name;
}

टैग्स को उनके टर्म पेज से जोड़ने के लिए: देखें: टैक्सोनॉमी शब्द प्राप्त करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.