เหตุใดภาษาของฟิลด์เนื้อหาจึงไม่บันทึกเป็นภาษาเดียวกับโหนด


9

ฉันมีปัญหาที่ผู้ใช้กำลังสร้างโหนดใหม่และป้อนเนื้อความ แต่ตั้งค่าโหนดเป็น "ภาษาเป็นกลาง" สำหรับภาษา แต่เมื่อมันบันทึกโหนดภาษาของฟิลด์ body จะถูกตั้งค่าเป็นภาษาอังกฤษ ทำไมสิ่งนี้ถึงเกิดขึ้น อะไรจะทำให้เกิดสิ่งนี้

ในเว็บไซต์นี้เราเปิดใช้งานและกำหนดค่าทั้งภาษาอังกฤษและฝรั่งเศส เว็บไซต์นี้ D7 ใช้งาน i18n

สิ่งนี้คล้ายกับเนื้อความว่างเปล่าในหน้าแก้ไขโหนดยกเว้นว่าฉันต้องการทราบว่าฟิลด์จะมีภาษาที่แตกต่างจากโหนดในตอนแรกได้อย่างไร

คำตอบ:


4

ตามค่าเริ่มต้น drupal จะตั้งค่า 'und' เป็นภาษาภาคสนามนั่นคือ LANGUAGE_NONE ดังนั้นเมื่อคุณprint_r($node)คุณจะเห็นสนามที่มีบางอย่างเช่น$node->field_name['und'][0]['value']

ตอนนี้เมื่อคุณเปิดใช้งานการแปลในฟิลด์นี้ 'und' จะถูกแทนที่ด้วยรหัสภาษาและ$nodeโครงสร้างจะมีลักษณะเหมือน$node->field_name['en'][0]['value']ที่ 'en' เป็นรหัสภาษา ฟิลด์เนื้อหาของคุณจะมี 'en' เป็นภาษาและจะไม่ว่างเปล่าเมื่อแสดงผล

สำหรับคำถามของคุณด้านบน:

ฉันมีปัญหาที่ผู้ใช้กำลังสร้างโหนดใหม่และป้อนเนื้อความ แต่ตั้งค่าโหนดเป็น "ภาษาเป็นกลาง" สำหรับภาษา แต่เมื่อมันบันทึกโหนดภาษาของฟิลด์ body จะถูกตั้งค่าเป็นภาษาอังกฤษ ทำไมสิ่งนี้ถึงเกิดขึ้น อะไรจะทำให้เกิดสิ่งนี้

ตรวจสอบภาษาเริ่มต้นของเว็บไซต์ของคุณหากตั้งค่าเป็นภาษาอังกฤษภาษาที่เป็นกลางอาจใช้ภาษาเริ่มต้นของไซต์ของคุณ


1
จะดีกว่านี้เล็กน้อยถ้าคุณสามารถอธิบายวิธีเปิดใช้งานการแปลในฟิลด์ได้เหมือนว่าคุณรู้วิธีการใช้งานและไม่ชัดเจน
Mołot

1
@ Mołot, ดาวน์โหลดและติดตั้งโมดูล i18n จาก: [ drupal.org/project/i18n] , ตอนนี้ไปที่โครงสร้าง> ประเภทเนื้อหา> 'ชื่อประเภทเนื้อหา'> จัดการฟิลด์> 'แก้ไขฟิลด์' คุณจะได้รับตัวเลือกให้เปิดใช้งานการแปล ด้วยวิธีนี้คุณสามารถเปิดใช้งานการแปลในฟิลด์ใดก็ได้
gauravjeet

ฉันหมายถึงฉันสามารถทำได้ แต่แก้ไขคำตอบของคุณ (สำหรับผู้อ่านในอนาคตหลายคนสดและสีเขียว) อาจเป็นความคิดที่ดี หากคุณสามารถที่จะทำ คุณมี upvote ของฉันสำหรับคำอธิบายต่อไป
Mołot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.