বর্তমান ভাষায় প্রোগ্রামাগুলিভাবে অনুবাদ করা টেকনোমি শব্দটি পুনরুদ্ধার করুন


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

আপনার ভাষা (ম্যানেজার) প্রথম লাইনে পরিবর্তে পরিষেবাটি ব্যবহার করা উচিত। এছাড়াও আমি ব্যবহারের ট্যাগ ব্যবহার করে কোডটি ছোট করতাম।

কোথাও ফাইলের শুরুতে:

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

ট্যাগগুলিকে তাদের পদ পৃষ্ঠায় লিঙ্ক করতে: দেখুন: শুল্কের শর্তাদি পান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.