ฉันได้สร้างประเภทเนื้อหา (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 ต้องมีฟังก์ชันนี้เป็นหลัก