การย้ายเนื้อหาหลายภาษาจาก CSV ไปยัง Drupal 8

เผยแพร่แล้ว: 2021-07-13

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

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

การนำเข้า CSV

Drupal 8 Migration Modules ที่คุณต้องการ

ดังที่ได้กล่าวไว้ก่อนหน้านี้ Drupal มีตัวเลือกและโมดูลมากมายที่สามารถช่วยให้คุณโยกย้ายได้ง่ายและไม่ยุ่งยาก สำหรับการย้ายเนื้อหาหลายภาษา คุณจะต้อง:

  1. โยกย้าย: ให้กรอบการทำงานที่ยืดหยุ่นสำหรับการย้ายเนื้อหาไปยัง Drupal จากแหล่งอื่น
  2. Migrate plus: จัดเตรียมปลั๊กอินสำหรับการย้ายข้อมูล เช่น ปลั๊กอินต้นทาง ปลั๊กอินกระบวนการ ปลั๊กอินปลายทาง และส่วนขยาย API
  3. Migrate Drupal: ให้การสนับสนุนสำหรับการย้ายเนื้อหาและการกำหนดค่า
  4. โยกย้ายซอร์ส CSV: จัดเตรียมปลั๊กอินสำหรับนำเข้าเนื้อหาจากไฟล์ CSV ไปยัง Drupal
  5. เครื่องมือโยกย้าย: โมดูลนี้ให้เครื่องมือ UI และคำสั่ง Drush ที่ใช้สำหรับการย้ายข้อมูล
  6. โมดูลการพัฒนาการกำหนดค่า: โมดูล นี้แปลงสคริปต์เป็นการกำหนดค่า

ขั้นตอนที่ 1: การย้ายเนื้อหาฐาน

ในการเริ่มต้นย้ายเนื้อหาพื้นฐาน ก่อนอื่นเราต้องสร้างโมดูลที่กำหนดเองใน Drupal 8

สร้างโมดูลที่กำหนดเอง

ตรวจสอบให้แน่ใจว่า info.yml มีคีย์และค่าเหล่านี้

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

ไฟล์ Yaml

นี่คือไฟล์ yaml ตัวอย่างสำหรับการนำเข้าเงื่อนไขอนุกรมวิธาน สคริปต์การโยกย้ายมี 4 ส่วน:

  1. ข้อมูลเมตา: จะมีรหัส ป้ายกำกับ และรหัสกลุ่มการย้ายข้อมูล
  2. ที่มา: ซอร์สคีย์ควรมีเส้นทางไปยังไฟล์ CSV
  3. กระบวนการ: การแมประหว่างฟิลด์และคอลัมน์ CSV
  4. ปลายทาง: ปลายทางที่บันทึกข้อมูลนำเข้า

เนื้อหาโหนดไฟล์ 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

ในการนำเข้าการแปล ก่อนอื่นเราต้องทำให้เว็บไซต์ของเรามีหลายภาษา ให้เราดูวิธีการดาวน์โหลดภาษาไปยังเว็บไซต์

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

2. การเปิดใช้งานการแปลสำหรับหน่วยงาน

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

ในตัวอย่างนี้ ฉันกำลังนำเข้าประเภทเนื้อหาบล็อก ดังนั้นฉันจะเปิดใช้งานการแปลสำหรับประเภทเนื้อหาบล็อก

ภาษา

3. อัปเดตไฟล์การโยกย้าย

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

tid

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

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

รหัสแหล่งที่มา

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

ปลายทาง

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

Langcode

การเปลี่ยนแปลงเหล่านี้บอกให้สคริปต์ใช้ id ของเนื้อหาจากการโยกย้ายเนื้อหาพื้นฐานซึ่งเนื้อหาเหล่านี้ถือเป็นการแปลแทนที่จะเป็นโหนดใหม่

ข้อควรจำ

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