Score:0

รับการแปลโดยทางโปรแกรมของค่าฟิลด์ในภาษาเฉพาะ

ธง ma

ฉันได้สร้างประเภทเนื้อหา (pdf_แบบฟอร์ม) ที่ฉันเพิ่ม field_gender_languagetest ด้วยสองตัวเลือก ชาย และ หญิง. ฉันแปลทั้งสองตัวเลือกเป็นภาษาเยอรมันโดยใช้แท็บการแปล

ตอนนี้ฉันกำลังสร้างรายงานข้อมูลที่กรอกโดยผู้ใช้โดยใช้ประเภทเนื้อหานั้น

มีวิธีใดที่จะรับการแปลนั้นโดยทางโปรแกรมหรือไม่?

ฉันลองใช้รหัสนี้ แต่มันใช้งานไม่ได้

t('ชาย', array(), array('langcode' => 'de')); 

วิธีการทำงานของฉัน

  $lang = "เด";

  ถ้า ($lang != "en") {
    $langs = ภาษารายการ ();
    $lang = $langs[$lang];
    foreach ($val['#base']['#node'] as $k => $v) {
      ถ้า (isset($v['#type']) && $v['#type'] == 'list_text') {
        foreach ($val['#base']['#node'][$k]['#value'] เป็น $k_sub => $v_sub) {
          $trns_str = pdf_trans($v_sub, $lang, 'ฟิลด์');
          $val['#base']['#node'][$k]['#value'][$k_sub] = $trns_str['trans'];
        }
      }
    }
  }

การทำงาน

ฟังก์ชัน pdf_trans( $string, $lang = NULL,$group = 'default') {
  $result = db_query("เลือก s.lid, s.source, s.context, s.location, t.translation, t.plid, t.plural จาก {locales_source} s ซ้ายเข้าร่วม {locales_target} t ON s.lid = t.lid และ t.language = :language โดยที่ s.textgroup = :textgroup และ s.source = :string_value เรียงลำดับตาม t.plid, t.plural", array(':language' => $lang->language, ' :textgroup' => $group, ':string_value'=>$string));
  $str=อาร์เรย์();

  ถ้า (ผลลัพธ์ $) {
    foreach (ผลลัพธ์ $ เป็น $ child) {
      $str=อาร์เรย์(
        'trans' => isset($child->trans) ? $child->trans : '',
        'trans_availabe' => '1',
      );
    }
  }
  ถ้า(นับ($str)==0)
  {
    $str=อาร์เรย์(
      'trans' => $string,
      'trans_availabe' => '0',
    );
  }
  กลับ $str;
}

นี่ไม่ใช่วิธีที่ถูกต้องเพราะ drupal ต้องมีฟังก์ชันนี้เป็นหลัก

apaderno avatar
us flag
หากรายงานถูกสร้างโดยทางโปรแกรม คำถามควรแสดงรหัสมากกว่าที่เป็นอยู่ ฉันสงสัยว่ารหัสกำลังใช้ `t('male', array(), array('langcode' => 'de')); ` เพื่อแปลค่าฟิลด์มีความเป็นไปได้มากกว่าที่โค้ดจะคล้ายกับ `t($field_value, array(), array('langcode' => 'de')); ` โดยที่ `$field_value` คือค่าที่มีอยู่ในฟิลด์เอนทิตี
Rog Boy avatar
ma flag
จริง ๆ แล้วฉันมีเพียงรหัสภาษาที่ตั้งค่าในโมดูลที่กำหนดเองของฉัน เช่น de,jp ...ถ้าเป็น de ฉันต้องใช้การแปลจากประเภทเนื้อหา -> จัดการฟิลด์ -> (ฟิลด์) รายการ -> แปล -> de - > (ที่นี่เรามีปัจจุบัน)
Rog Boy avatar
ma flag
โปรดตรวจสอบคำถามที่อัปเดตแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา