DEV Community

Cover image for ทดสอบระบบงานแปลภาษา
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

ทดสอบระบบงานแปลภาษา

นี่คือโพสต์ทดสอบสำหรับตรวจสอบเวิร์กโฟลว์การแปลของ n8n ใน Ghost โดยเน้น 3 จุด: คัดลอก หมวดหมู่ จากต้นฉบับ, แปล ข้อความตัดตอน ตาม locale และ เขียนลิงก์บล็อกภายในใหม่ ให้ชี้ไปยังเวอร์ชันภาษาของบทความนั้น ๆ แทน URL ภาษาอังกฤษ หากเห็นโพสต์นี้บนบล็อกจริง ให้ลบออกหลังยืนยันผลการทดสอบแล้ว

ลองใช้ Apidog วันนี้

ภาพหน้าจอเวิร์กโฟลว์ n8n

เหตุผลที่ต้องมีโพสต์ทดสอบนี้

ก่อนหน้านี้ workflow แปลของ n8n มีปัญหาหลัก 2 จุด:

  • โพสต์แปลบางรายการไม่มี category และ custom_excerpt
  • ลิงก์ภายในบทความแปลแล้วยังชี้ไปยัง URL ภาษาอังกฤษ

ผลกระทบคือกลุ่ม hreflang อ่อนลง และผู้อ่านใน locale อื่น เช่น อินโดนีเซีย อาจถูกส่งไปยังบทความภาษาอังกฤษโดยไม่ตั้งใจ

โพสต์นี้ใช้เป็น smoke test เพื่อยืนยันว่า workflow เวอร์ชันล่าสุดสามารถทำงานกับ Ghost ได้ถูกต้องจริง

เช็กลิสต์สิ่งที่ต้องตรวจสอบ

หลังเผยแพร่โพสต์นี้ ตัวแปล n8n ควรทำงานเพียงครั้งเดียว และสร้างฉบับแปล 11 ฉบับใน Ghost ไม่ว่าจะเป็น draft หรือ published post

สำหรับแต่ละฉบับแปล ให้ตรวจสอบ 3 รายการนี้:

  1. ฟิลด์ custom_excerpt ต้องมีข้อความตัดตอนที่แปลแล้ว และต้อง ไม่ว่าง
  2. ฟิลด์ category ต้องคัดลอกค่า Tutorials จากโพสต์ต้นฉบับมาอย่างครบถ้วน
  3. ลิงก์ภายในเนื้อหาต้องถูกเขียนใหม่ให้ตรงกับ locale ของบทความ เช่น ฉบับภาษาญี่ปุ่นควรใช้ https://apidog.com/jp/blog/free-cursor-ai/ ไม่ใช่ URL ภาษาอังกฤษ

ลิงก์สำหรับทดสอบการเขียนใหม่

ลิงก์ด้านล่างมีไว้เพื่อทดสอบ regex สำหรับ rewrite URL เท่านั้น ไม่จำเป็นต้องคลิก

มีทั้ง URL แบบ absolute และ root-relative style เพื่อให้ workflow ตรวจสอบได้ครบทั้งสองกรณี:

ผลลัพธ์ที่คาดหวัง:

  • เวอร์ชันภาษาญี่ปุ่นต้อง rewrite URL ทั้ง 4 รายการเป็นรูปแบบ /jp/blog/{slug}/
  • เวอร์ชันภาษาอินโดนีเซียต้องใช้ /id/blog/{slug}/ ไม่ใช่ /ig/blog/...
  • โพสต์ภาษาอินโดนีเซียควรถูกสร้างใน Ghost ด้วย slug ลงท้าย …-id
  • โพสต์ภาษาอินโดนีเซียควรมีแท็ก 1Locale ID

ตรวจสอบด้วย curl

หลัง publish แล้ว สามารถตรวจสอบ HTTP status และหน้า rendered ได้ด้วยคำสั่งนี้:

# Verify a translation came out cleanly (after publishing):
curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/

# expect 200, and the rendered page to show
#   - "Tutorials" category badge
#   - a Japanese excerpt under the title
#   - any internal links rewritten to /jp/blog/...
Enter fullscreen mode Exit fullscreen mode

จากนั้นเปิดหน้าบทความแปลใน Ghost หรือ frontend แล้วตรวจสอบด้วยตาอีกครั้ง:

  • มี category badge เป็น Tutorials
  • มี excerpt ภาษาของ locale นั้นใต้ title
  • ลิงก์ภายในทั้งหมดถูก rewrite ไปยัง prefix ของ locale เดียวกัน

การล้างข้อมูลหลังยืนยันผล

ถ้าฉบับแปลทั้ง 11 ฉบับถูกต้องทั้งหมด ให้ลบโพสต์นี้และฉบับแปลทั้งหมดออกจาก Ghost เพราะไม่มีประโยชน์สำหรับ production

ถ้าพบปัญหา เช่น หมวดหมู่หายไป, excerpt ว่างเปล่า หรือ rewrite link ผิด ให้เก็บโพสต์ไว้เพื่อ debug และแจ้งเจ้าของ workflow เพื่อตรวจสอบต่อไป

Top comments (0)