Puncte:0

obține traducerea în mod programatic a valorii câmpului într-un anumit limbaj

drapel ma

Am creat un tip de conținut (formular_pdf) la care am adăugat a field_gender_languagetest cu doua variante, masculin și Femeie. Am tradus ambele opțiuni în germană folosind fila de traducere.

Acum generez un raport al datelor completate de utilizatorii care folosesc acel tip de conținut.

Există vreo modalitate de a obține în mod programatic acea traducere?

Încerc acest cod, dar nu merge.

t('masculin', array(), array('langcode' => 'de')); 

soluția mea de lucru

  $lang ="de";

  if ($lang != "en") {
    $langs = listă_limbi();
    $lang = $langs[$lang];
    foreach ($val['#base']['#node'] ca $k => $v) {
      if (isset($v['#type']) && $v['#type'] == 'list_text') {
        foreach ($val['#base']['#node'][$k]['#value'] ca $k_sub => $v_sub) {
          $trns_str = pdf_trans($v_sub, $lang, 'câmp');
          $val['#base']['#node'][$k]['#value'][$k_sub] = $trns_str['trans'];
        }
      }
    }
  }

Funcţie

funcția pdf_trans( $șir, $lang = NULL, $grup = „implicit”) {
  $rezultat = db_query("SELECT s.lid, s.source, s.context, s.location, t.translation, t.plid, t.plural FROM {locales_source} s LEFT JOIN {locales_target} t ON s.lid = t.lid AND t.language = :language WHERE s.textgroup = :textgroup și s.source = :string_value ORDER BY t.plid, t.plural", array(':language' => $lang->language, ' :textgroup' => $grup, ':string_value'=>$string));
  $str= matrice();

  if($rezultat){
    foreach ($rezultat ca $copil) {
      $str= matrice(
        'trans' => isset($child->trans) ? $child->trans : '',
        'trans_availabe' => '1',
      );
    }
  }
  if(count($str)==0)
  {
    $str= matrice(
      'trans' => $șir,
      'trans_availabe' => '0',
    );
  }
  returnează $str;
}

Aceasta nu ar trebui să fie calea corectă, deoarece drupal trebuie să aibă această funcționalitate ca bază

apaderno avatar
drapel us
Dacă raportul este generat programatic, întrebarea ar trebui să arate mai mult cod decât arată. Mă îndoiesc că codul folosește de fapt `t('male', array(), array('langcode' => 'de')); ` pentru a traduce valoarea unui câmp.Este mai probabil ca codul să fie similar cu `t($field_value, array(), array('langcode' => 'de')); ` unde `$field_value` este valoarea conținută în câmpul entitate.
Rog Boy avatar
drapel ma
de fapt, am doar cod de limbă care este configurat în modulul meu personalizat, de exemplu de,jp ... dacă este de, trebuie să folosesc traducerea din tipul de conținut -> gestionează câmp -> listă (câmp) -> traduce -> de - > (aici avem prezent)
Rog Boy avatar
drapel ma
vă rugăm să verificați întrebarea actualizată

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.