นี่คือโพสต์ทดสอบขนาดเล็กสำหรับยืนยันพฤติกรรมใหม่ 3 จุดของเวิร์กโฟลว์แปลบทความด้วย n8n: คัดลอก หมวดหมู่ จากต้นฉบับ, แปล ส่วนนำ ตาม locale และ เขียนลิงก์บล็อกภายในใหม่ ให้ชี้ไปยังเวอร์ชันภาษาที่ถูกต้องแทน URL ภาษาอังกฤษ หากพบโพสต์นี้บนบล็อกจริง ให้ลบออกหลังจากยืนยันผลทดสอบแล้ว
ทำไมต้องมีโพสต์ทดสอบนี้
ก่อนหน้านี้ workflow แปลของ n8n มีปัญหาในบางโพสต์ที่แปลแล้ว:
- ไม่ได้ใส่ป้ายหมวดหมู่ในโพสต์แปล
- ไม่ได้เติม
custom_excerptหรือส่วนนำ - ลิงก์ภายในยังคงชี้ไปยัง URL ภาษาอังกฤษ
ตัวอย่างเช่น เวอร์ชันภาษาโปรตุเกสของบทแนะนำ LLM ไม่มีทั้งหมวดหมู่และส่วนนำ ส่วนลิงก์ภายในในบทความแปลยังพาผู้อ่านกลับไปยังบทความภาษาอังกฤษ ทำให้กลุ่ม hreflang อ่อนลงและส่งผู้ใช้ไปยังภาษาที่ไม่ตรงกับ locale
โพสต์นี้จึงทำหน้าที่เป็น smoke test เพื่อยืนยันว่า workflow เวอร์ชันล่าสุดทำงานครบตั้งแต่การอ่านโพสต์ต้นฉบับ แปลเนื้อหา เขียนลิงก์ใหม่ และสร้างโพสต์ใน Ghost
สิ่งที่ต้องตรวจสอบหลังเผยแพร่
เมื่อเผยแพร่โพสต์นี้ workflow แปลของ n8n ควรถูกเรียกหนึ่งครั้ง และสร้างโพสต์แปล 11 ฉบับใน Ghost ไม่ว่าจะอยู่ในสถานะ draft หรือ published
ตรวจสอบแต่ละฉบับด้วย checklist นี้:
- ฟิลด์
custom_excerptต้องมีข้อความที่แปลจากส่วนนำต้นฉบับ และต้อง ไม่ว่าง - ฟิลด์
categoryต้องมีค่าTutorialsตรงกับโพสต์ต้นฉบับ - ลิงก์ภายในเนื้อหาต้องถูกเขียนใหม่ให้ตรงกับ locale ของบทความนั้น
ตัวอย่างผลลัพธ์ที่คาดหวัง:
ต้นฉบับภาษาอังกฤษ:
https://apidog.com/blog/free-cursor-ai/
ฉบับภาษาญี่ปุ่น:
https://apidog.com/jp/blog/free-cursor-ai/
ฉบับภาษาอินโดนีเซีย:
https://apidog.com/id/blog/free-cursor-ai/
ลิงก์สำหรับทดสอบการเขียนใหม่
ในโพสต์นี้มีลิงก์ภายใน 2 รูปแบบ เพื่อทดสอบว่า regular expression ของ workflow รองรับได้ครบ
1. ลิงก์แบบ absolute
- อ่านเกี่ยวกับการ เรียกใช้ Cursor AI ฟรี
- ดูวิธี รับ Claude Pro ฟรี
2. ลิงก์แบบ root-relative
- ดูบทความ 10 อันดับการทดสอบ API
- อ่านบทความเกี่ยวกับ LLM ที่ไม่มีข้อจำกัด
หลัง workflow ทำงานแล้ว ให้ตรวจสอบว่า URL เหล่านี้ถูกแปลงตาม locale ที่ถูกต้อง เช่น:
/jp/blog/{slug}/
/id/blog/{slug}/
โดยเฉพาะภาษาอินโดนีเซียต้องใช้:
/id/blog/{slug}/
ไม่ใช่:
/ig/blog/{slug}/
นอกจากนี้ โพสต์ภาษาอินโดนีเซียควรถูกสร้างใน Ghost ด้วย slug ที่ลงท้ายด้วย -id และมีแท็ก 1Locale ID ซึ่งเป็นส่วนหนึ่งของการติดตามผล Req 6
วิธีตรวจสอบด้วยคำสั่ง curl
หลังจาก workflow สร้างโพสต์แปลแล้ว ให้ตรวจสอบหน้าเป้าหมายด้วย curl:
# ตรวจสอบว่าหน้าภาษาญี่ปุ่นถูกสร้างและเรนเดอร์ได้
curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/
# ผลลัพธ์ที่คาดหวัง:
# - HTTP 200
# - หน้าเรนเดอร์ได้
# - มีป้ายหมวดหมู่ "Tutorials"
# - มีส่วนนำภาษาญี่ปุ่นใต้ชื่อเรื่อง
# - ลิงก์ภายในทั้งหมดถูกเขียนใหม่เป็น /jp/blog/...
หากต้องการตรวจหลาย locale แบบรวดเร็ว สามารถใช้ loop:
locales=("jp" "id" "pt" "es" "fr")
for locale in "${locales[@]}"; do
url="https://apidog.com/${locale}/blog/translation-pipeline-smoke-test/"
echo "Checking ${url}"
curl -I "${url}" | head -n 1
done
Checklist สำหรับยืนยันผลใน Ghost
ตรวจสอบโพสต์แปลแต่ละฉบับใน Ghost Admin:
[ ] โพสต์ถูกสร้างครบตามจำนวน locale ที่คาดหวัง
[ ] custom_excerpt ไม่ว่าง
[ ] category = Tutorials
[ ] internal links ถูกเขียนใหม่ตาม locale
[ ] slug ของ locale พิเศษ เช่น id ถูกต้อง
[ ] tag ของ locale ถูกต้อง เช่น 1Locale ID
หากพบปัญหา ให้บันทึก locale, slug, URL ต้นทาง และ URL ที่ถูกเขียนผิด เพื่อส่งต่อให้เจ้าของ workflow ตรวจสอบ node ที่เกี่ยวข้องใน n8n
การทำความสะอาดหลังยืนยันผล
เมื่อยืนยันแล้วว่าโพสต์แปลทั้ง 11 ฉบับถูกต้อง ให้ลบโพสต์ทดสอบนี้และโพสต์แปลทั้งหมดออกจาก Ghost เพราะไม่มีคุณค่าใน production
หากพบความผิดพลาด เช่น หมวดหมู่หายไป, custom_excerpt ว่าง หรือ URL ถูกเขียนผิด ให้เก็บโพสต์ไว้ชั่วคราวเพื่อใช้วินิจฉัย และแจ้งเจ้าของ workflow พร้อมรายละเอียดที่ตรวจพบ

Top comments (0)