การย้ายเนื้อหาหลายภาษาจาก CSV ไปยัง Drupal 8
เผยแพร่แล้ว: 2021-07-13การย้ายข้อมูลจากแหล่งใดๆ ไปยัง Drupal 8 ทำได้ง่ายด้วยโมดูลต่างๆ ที่ช่วยให้ถ่ายโอนข้อมูลได้ง่าย การย้ายข้อมูลใน Drupal เป็นคำศัพท์สำหรับกระบวนการใดๆ ที่ย้ายข้อมูลจากแหล่งภายนอกไปยังไซต์ Drupal ปัจจุบัน คุณสามารถย้ายข้อมูลที่มีโหนด ผู้ใช้ การกำหนดค่า และส่วนประกอบอื่นๆ ของไซต์
Drupal มีหลายวิธีในการโยกย้ายเนื้อหา คุณสามารถเลือกวิธีที่ดีที่สุดที่จะทำได้ ทั้งนี้ขึ้นอยู่กับเว็บไซต์และแหล่งที่มาของข้อมูล อย่างไรก็ตาม การย้ายข้อมูลหลายภาษาสามารถเพิ่มขั้นตอนเพิ่มเติมสองสามขั้นตอนให้กับกระบวนการย้ายของคุณได้ คุณจะต้องย้ายเนื้อหาพื้นฐานก่อน จากนั้นจึงย้ายข้อมูลการแปล ในบทความนี้ เราจะอธิบายขั้นตอนเหล่านี้อย่างละเอียดเพื่อช่วยให้คุณเข้าใจในการย้ายเนื้อหาหลายภาษาจาก CSV ไปยัง Drupal 8 ได้ดีขึ้น

Drupal 8 Migration Modules ที่คุณต้องการ
ดังที่ได้กล่าวไว้ก่อนหน้านี้ Drupal มีตัวเลือกและโมดูลมากมายที่สามารถช่วยให้คุณโยกย้ายได้ง่ายและไม่ยุ่งยาก สำหรับการย้ายเนื้อหาหลายภาษา คุณจะต้อง:
- โยกย้าย: ให้กรอบการทำงานที่ยืดหยุ่นสำหรับการย้ายเนื้อหาไปยัง Drupal จากแหล่งอื่น
- Migrate plus: จัดเตรียมปลั๊กอินสำหรับการย้ายข้อมูล เช่น ปลั๊กอินต้นทาง ปลั๊กอินกระบวนการ ปลั๊กอินปลายทาง และส่วนขยาย API
- Migrate Drupal: ให้การสนับสนุนสำหรับการย้ายเนื้อหาและการกำหนดค่า
- โยกย้ายซอร์ส CSV: จัดเตรียมปลั๊กอินสำหรับนำเข้าเนื้อหาจากไฟล์ CSV ไปยัง Drupal
- เครื่องมือโยกย้าย: โมดูลนี้ให้เครื่องมือ UI และคำสั่ง Drush ที่ใช้สำหรับการย้ายข้อมูล
- โมดูลการพัฒนาการกำหนดค่า: โมดูล นี้แปลงสคริปต์เป็นการกำหนดค่า
ขั้นตอนที่ 1: การย้ายเนื้อหาฐาน
ในการเริ่มต้นย้ายเนื้อหาพื้นฐาน ก่อนอื่นเราต้องสร้างโมดูลที่กำหนดเองใน Drupal 8

ตรวจสอบให้แน่ใจว่า info.yml มีคีย์และค่าเหล่านี้
คุณจะต้องสร้างไฟล์ yaml ซึ่งเรียกว่าสคริปต์การย้ายข้อมูล และวางไว้ในไดเร็กทอรี config/install ของโมดูลที่กำหนดเองที่สร้างขึ้น คีย์ config_devel/install ของ info.yml ควรมีไฟล์ yaml ทั้งหมดเป็นลายลักษณ์อักษร

นี่คือไฟล์ yaml ตัวอย่างสำหรับการนำเข้าเงื่อนไขอนุกรมวิธาน สคริปต์การโยกย้ายมี 4 ส่วน:
- ข้อมูลเมตา: จะมีรหัส ป้ายกำกับ และรหัสกลุ่มการย้ายข้อมูล
- ที่มา: ซอร์สคีย์ควรมีเส้นทางไปยังไฟล์ CSV
- กระบวนการ: การแมประหว่างฟิลด์และคอลัมน์ CSV
- ปลายทาง: ปลายทางที่บันทึกข้อมูลนำเข้า
เนื้อหาโหนดไฟล์ yaml ควรเขียนในทำนองเดียวกัน ความแตกต่างเพียงอย่างเดียวคือปลายทาง

ปลั๊กอินปลายทางควรเป็น เอนทิตี:โหนด และ default_bundle จะมีชื่อเครื่องของประเภทเนื้อหาที่จะนำเข้าเนื้อหา
หลังจากสร้างไฟล์ yaml ทั้งหมดแล้ว ควรรวม ID ของ yaml ไว้ใน info.yml เมื่อทุกอย่างเสร็จสิ้น ให้เปิดใช้งานโมดูลที่กำหนดเอง
ใช้คำสั่ง Drush drush cdi <migration id> ที่นี่รหัสการโยกย้ายคือการ โยกย้าย techx สิ่งนี้จะแปลงสคริปต์เป็นการกำหนดค่า
หลังจากรันคำสั่งไปที่ admin>structure>migration คุณจะพบกลุ่มการย้ายข้อมูลที่คุณสร้างขึ้นโดยคลิกที่รายการการย้ายข้อมูล นี่จะแสดงรายการสคริปต์การย้ายข้อมูลที่สร้างขึ้น

การคลิกที่แท็บดำเนินการจะแสดงรายการการดำเนินการที่มี:


นำเข้า คือการดึงข้อมูลจากต้นทาง
การย้อนกลับ จะลบข้อมูลที่นำเข้า
หยุด คือการขัดจังหวะกระบวนการนำเข้าหรือย้อนกลับ
บางครั้งกระบวนการก็ติดขัด หากต้องการย้ายสถานะเป็นไม่ได้ใช้งาน ระบบจะใช้การ รีเซ็ต
สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการย้ายข้อมูลของเอนทิตีต่างๆ เช่น ผู้ใช้ ย่อหน้า ให้ดูที่ CSV Import to Migrate Drupal 7 ถึง 8 - คู่มือฉบับสมบูรณ์
ขั้นตอนที่ 2: การย้ายคำแปลของเนื้อหาพื้นฐาน
หากคุณได้เปิดใช้งานเนื้อหาหลายภาษาบนเว็บไซต์ Drupal 8 ของคุณแล้ว คุณสามารถข้ามขั้นตอนแรกได้ หากคุณต้องการทราบวิธีการสร้างเว็บไซต์หลายภาษาของ Drupal 8 (และเหตุใดคุณจึงอาจต้องการ) ให้อ่านบทความนี้
1. การเพิ่มภาษาให้กับเว็บไซต์ Drupal
ในการนำเข้าการแปล ก่อนอื่นเราต้องทำให้เว็บไซต์ของเรามีหลายภาษา ให้เราดูวิธีการดาวน์โหลดภาษาไปยังเว็บไซต์
- เปิดใช้งานโมดูลการ แปล ภาษา และ เนื้อหา เหล่านี้เป็นโมดูลหลัก
- ไปที่ /admin/config/regional and language/language/add language

- การคลิกที่ดรอปดาวน์จะทำให้คุณมีรายชื่อภาษา เลือกภาษาที่คุณต้องการบนเว็บไซต์แล้วคลิก เพิ่มภาษา การดำเนินการนี้จะดาวน์โหลดภาษาสำหรับไซต์ของคุณ
2. การเปิดใช้งานการแปลสำหรับหน่วยงาน
เมื่อเราติดตั้งภาษาที่เราต้องการแล้ว เราต้องเปิดใช้งานการแปลสำหรับเอนทิตีก่อนที่จะนำเข้าหรือเพิ่มการแปลไปยังเนื้อหา สำหรับสิ่งนี้ ไปที่ admin/config/regional/content Translation เลือกเอนทิตีที่คุณต้องการเปิดใช้งานการแปล และคลิก บันทึกการกำหนดค่า
ในตัวอย่างนี้ ฉันกำลังนำเข้าประเภทเนื้อหาบล็อก ดังนั้นฉันจะเปิดใช้งานการแปลสำหรับประเภทเนื้อหาบล็อก

3. อัปเดตไฟล์การโยกย้าย
มีการเปลี่ยนแปลงบางอย่างที่ต้องทำในไฟล์ yaml เพื่อนำเข้าการแปล กำหนดเส้นทางของไฟล์ CSV ของเนื้อหาที่แปลแล้วเนื่องจากเนื้อหาพื้นฐานและเนื้อหาที่แปลจะถูกเก็บไว้ในไฟล์ต่างๆ การเปลี่ยนแปลงในการแปลคำศัพท์

เพิ่ม tid คีย์ใหม่ในส่วนกระบวนการของสคริปต์ด้วย ปลั๊กอิน เป็นการ โยกย้าย แหล่งที่มา เป็น id และค่าการ ย้าย ควรเป็น รหัส การย้ายข้อมูลของสคริปต์การโยกย้ายเนื้อหาพื้นฐาน
สำหรับการโยกย้ายโหนดเพิ่ม nid คีย์ใหม่ในส่วนของกระบวนการ ที่นี่คีย์การ ย้ายข้อมูล จะมีค่าของ รหัส การย้ายข้อมูลของสคริปต์การย้ายเนื้อหาพื้นฐาน

ควรเพิ่มคีย์อื่นคือการ แปล โดยตั้งค่า เป็น true ควรเพิ่มในส่วนปลายทางของสคริปต์การย้ายการแปลทั้งหมดโดยไม่คำนึงถึงเอนทิตี

กำหนดภาษาที่จะนำเข้าการแปลโดยใช้คีย์ langcode ในตัวอย่างนี้ ฉันกำลังนำเข้าคำแปลภาษาญี่ปุ่น ดังนั้นค่าจะเป็น ja

การเปลี่ยนแปลงเหล่านี้บอกให้สคริปต์ใช้ id ของเนื้อหาจากการโยกย้ายเนื้อหาพื้นฐานซึ่งเนื้อหาเหล่านี้ถือเป็นการแปลแทนที่จะเป็นโหนดใหม่
ข้อควรจำ
- ขั้นตอนการนำเข้าควรเป็นไปตามลำดับ ตัวอย่างเช่น หากมีการอ้างถึงเงื่อนไขในโหนด ควรนำเข้าเงื่อนไขก่อนเนื้อหาโหนด
- เปิดใช้งานการแปลสำหรับเอนทิตีก่อนที่จะนำเข้าการแปล
- ลำดับของเนื้อหาการแปลในไฟล์ CSV ควรเหมือนกับเนื้อหาพื้นฐาน กล่าวคือ เนื้อหาพื้นฐานและการแปลควรอยู่ในบรรทัดเดียวกันในไฟล์ CSV
- นำเข้าเนื้อหาพื้นฐานก่อนแล้วจึงค่อยนำเข้าเนื้อหาการแปล มิฉะนั้นทั้งคู่จะถือว่าเป็นเนื้อหาส่วนบุคคล
