DEV Community

Cover image for ทดสอบระบบแปลภาษาอัตโนมัติ
Thanawat Wongchai
Thanawat Wongchai

Posted on • Originally published at apidog.com

ทดสอบระบบแปลภาษาอัตโนมัติ

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

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

ภาพหน้าจอทดสอบเวิร์กโฟลว์การแปล

เหตุใดโพสต์นี้จึงมีอยู่

ก่อนหน้านี้เวิร์กโฟลว์แปลของ n8n ไม่ได้เติมข้อมูลสำคัญให้ครบในทุกโพสต์ที่แปล เช่น เวอร์ชันภาษาโปรตุเกสของบทช่วยสอน LLM ไม่มีทั้งป้ายหมวดหมู่และข้อความย่อ นอกจากนี้ ลิงก์ภายในในบทความที่แปลแล้วยังคงชี้ไปยัง URL ภาษาอังกฤษ ทำให้กลุ่ม hreflang อ่อนลง และอาจพาผู้อ่านชาวอินโดนีเซียไปยังบทความภาษาอังกฤษโดยไม่ตั้งใจ

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

สิ่งที่ต้องตรวจสอบหลังเผยแพร่

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

ตรวจสอบแต่ละฉบับแปลด้วย checklist นี้:

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

ลิงก์สำหรับยืนยันการ rewrite

มีการใส่ลิงก์ไว้ 2 รูปแบบเพื่อทดสอบ regex ของขั้นตอน rewrite link:

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

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

ส่วนท้ายของการเปลี่ยนชื่อนี้คือการติดตามผล Req 6

คำสั่งตรวจสอบหลังเผยแพร่

ใช้ curl เพื่อตรวจสอบว่าโพสต์ที่แปลแล้วตอบกลับได้ถูกต้อง:

# ตรวจสอบว่าการแปลออกมาสะอาดหมดจด หลังจากเผยแพร่แล้ว
curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/

# ผลลัพธ์ที่คาดหวัง:
# - HTTP status เป็น 200
# - หน้าที่ render แล้วแสดงป้ายหมวดหมู่ "Tutorials"
# - มีข้อความย่อภาษาญี่ปุ่นใต้ชื่อเรื่อง
# - ลิงก์ภายในถูก rewrite เป็น /jp/blog/...
Enter fullscreen mode Exit fullscreen mode

หากต้องการตรวจหลาย locale ให้เปลี่ยน prefix ภาษา เช่น:

curl -I https://apidog.com/id/blog/translation-pipeline-smoke-test/
curl -I https://apidog.com/pt/blog/translation-pipeline-smoke-test/
curl -I https://apidog.com/ko/blog/translation-pipeline-smoke-test/
Enter fullscreen mode Exit fullscreen mode

ขั้นตอนตรวจสอบใน Ghost

หลังเวิร์กโฟลว์ทำงานเสร็จ ให้เปิดแต่ละโพสต์ใน Ghost แล้วตรวจตามลำดับนี้:

  1. เปิด metadata ของโพสต์
  2. ตรวจ custom_excerpt
  3. ตรวจ category ว่าเป็น Tutorials
  4. ตรวจ tag ของ locale
  5. เปิด HTML หรือ preview ของโพสต์
  6. ค้นหา URL ภายในที่ยังเป็น /blog/{slug}/
  7. ยืนยันว่า URL ถูกเปลี่ยนเป็น /{locale}/blog/{slug}/

ตัวอย่างสิ่งที่ควรเห็นในเวอร์ชันญี่ปุ่น:

/jp/blog/free-cursor-ai/
/jp/blog/get-claude-pro-for-free/
/jp/blog/top-10-ai-testing/
/jp/blog/llms-no-restrictions/
Enter fullscreen mode Exit fullscreen mode

ตัวอย่างสิ่งที่ไม่ควรเห็น:

/blog/free-cursor-ai/
/ig/blog/free-cursor-ai/
Enter fullscreen mode Exit fullscreen mode

การทำความสะอาดหลังยืนยันผล

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

หากพบปัญหาใดปัญหาหนึ่ง เช่น:

  • หมวดหมู่หาย
  • custom_excerpt ว่าง
  • ลิงก์ภายใน rewrite ผิด locale
  • slug หรือ tag ของ locale ไม่ถูกต้อง

ให้เก็บโพสต์ไว้เพื่อใช้วินิจฉัย และแจ้งเจ้าของเวิร์กโฟลว์ n8n เพื่อตรวจสอบขั้นตอนที่เกี่ยวข้องต่อไป

Top comments (0)