เปรียบเทียบการแปลด้วย AI: Gemini vs GPT-4 vs DeepSeek สำหรับไฟล์ .po

คุณมีโมเดล AI ที่ทรงพลังที่สุดสามตัวในประวัติศาสตร์อยู่แค่ปลายนิ้ว คุณวางสตริง .po ของ WordPress ลงในแต่ละโมเดล สองในนั้นทำให้เว็บไซต์ของคุณเสียหาย
นี่ไม่ใช่สถานการณ์สมมติ มันเกิดขึ้นทุกวันกับนักพัฒนาที่คิดว่า "เก่งภาษาอังกฤษ" หมายถึง "เก่ง Gettext" ความจริงก็คือการแปลไฟล์ localization ของ WordPress เป็นงานเฉพาะทาง และ Large Language Model แต่ละตัวจัดการมันแตกต่างกันอย่างมาก
เราเรียกใช้ชุดสตริง .po ชุดเดียวกันผ่าน Gemini 2.0 Flash, GPT-4 และ DeepSeek เพื่อค้นหาว่าโมเดลใดสร้างการแปลที่แม่นยำและปลอดภัยต่อโค้ดมากที่สุด ผลลัพธ์ที่ได้น่าประหลาดใจ
การตั้งค่าการทดสอบ: สิ่งที่เราแปล
เราเลือกสตริงจากโลกแห่งความเป็นจริง 200 รายการจากร้านค้า WooCommerce ที่ใช้งานจริงและธีม WordPress ยอดนิยม ชุดทดสอบนี้จงใจทำให้ยุ่งยาก ครอบคลุม:
- สตริง UI อย่างง่าย ("Add to Cart", "Search results")
- สตริงที่มี ตัวแปร printf (
%s,%d,%1$s of %2$s) - สตริงที่มี HTML markup (
<strong>,<a href>,<br/>) - รูปแบบพหูพจน์ (
msgid_plural) ที่กำหนดเป้าหมายไปที่ภาษาโปแลนด์ (3 รูปแบบ) และภาษาอาหรับ (6 รูปแบบ) - สตริงที่มี context (
msgctxt) โดยที่ "Post" อาจหมายถึงโพสต์ในบล็อกหรือคำกริยา "to post"
แต่ละโมเดลได้รับพรอมต์เดียวกัน: แปลรายการ Gettext เหล่านี้จากภาษาอังกฤษเป็นภาษาตุรกี โดยคงตัวแปรและแท็ก HTML ทั้งหมดไว้เหมือนเดิมทุกประการ
จากนั้นเราจึงเรียกใช้เอาต์พุตแต่ละรายการผ่านชุดการตรวจสอบที่ตรวจสอบความสมบูรณ์ของตัวยึด HTML structure จำนวนรูปแบบพหูพจน์ และการเข้ารหัสอักขระ
รอบที่ 1: สตริง UI อย่างง่าย
ทั้งสามโมเดลจัดการสตริงพื้นฐานได้ดี "Add to Cart" กลายเป็น "Sepete Ekle" โดยรวม "Log In" ถูกเรนเดอร์อย่างถูกต้อง ไม่มีอะไรน่าประหลาดใจที่นี่
แต่แม้ในหมวดหมู่ที่เรียบง่ายนี้ เราก็สังเกตเห็นรูปแบบหนึ่ง GPT-4 บางครั้งเพิ่มเครื่องหมายสุภาพที่ไม่ได้อยู่ในแหล่งที่มา คำว่า "Delete" ที่กระชับกลายเป็นคำที่เป็นทางการมากขึ้น โดยเพิ่มอักขระพิเศษ 3-4 ตัว ไม่ใช่ข้อผิดพลาด แต่เป็นข้อกังวลสำหรับการจัดวาง UI ที่ความกว้างของปุ่มคงที่
DeepSeek สร้างการแปลตามตัวอักษรมากกว่าเล็กน้อย ซึ่งเป็นสิ่งที่ควรค่าแก่การพิจารณาสำหรับองค์ประกอบ UI ที่ความกระชับมีความสำคัญ
Gemini สร้างสมดุล โดยจับคู่ register และความยาวของสตริงต้นฉบับได้อย่างสม่ำเสมอที่สุด
คำตัดสิน: สตริงอย่างง่าย
ทั้งสามผ่าน ความแตกต่างด้านสไตล์เล็กน้อยเท่านั้น
รอบที่ 2: ตัวแปร Printf และอาร์กิวเมนต์ตามตำแหน่ง
นี่คือจุดที่ความแตกต่างที่แท้จริงเกิดขึ้น พิจารณาสตริง WordPress ทั่วไปนี้:
msgid "Page %1$s of %2$s"
msgstr ""
นี่คือสิ่งที่แต่ละโมเดลสร้างขึ้นเมื่อแปลเป็นภาษาตุรกี:
# Gemini 2.0 Flash
msgstr "Sayfa %1$s / %2$s"
# GPT-4
msgstr "Sayfa %1$s / %2$s"
# DeepSeek
msgstr "%1$s / %2$s. Sayfa"
ทั้งสามรักษาสภาพตัวแปรไว้อย่างสมบูรณ์ แต่ DeepSeek จัดเรียงโครงสร้างประโยคใหม่ โดยย้าย "Sayfa" ไปไว้ท้าย แม้ว่าจะสร้างสรรค์ทางไวยากรณ์ แต่สิ่งนี้เปลี่ยนความหมาย: ผู้ใช้จะอ่าน "1 / 10. Page" แทนที่จะเป็น "Page 1 of 10."
ตอนนี้ดูตัวอย่างที่อันตรายกว่านี้:
msgid "Hello %s, you have %d new messages"
msgstr ""
# Gemini 2.0 Flash
msgstr "Merhaba %s, %d yeni mesajiniz var"
# GPT-4
msgstr "Merhaba %s, %d yeni mesajınız var"
# DeepSeek
msgstr "Merhaba % s, % d yeni mesajınız var"
มีอยู่ DeepSeek เพิ่มช่องว่างภายใน %s และ %d เปลี่ยนให้เป็น % s และ % d sprintf() ของ PHP จะไม่รู้จักสิ่งเหล่านี้ ไซต์ของคุณอาจส่งข้อผิดพลาดร้ายแรงหรือแสดงสตริงตัวแปรดิบให้ผู้ใช้ของคุณเห็น
นี่คือข้อผิดพลาดที่ทำให้การแปลเสียที่พบบ่อยที่สุดที่เราได้บันทึกไว้ หากคุณต้องการเข้าใจอย่างแน่ชัดว่าเหตุใดช่องว่างเดียวภายในตัวยึดจึงทำลายไซต์ของคุณ โปรดอ่านรายละเอียดเชิงลึกของเราเกี่ยวกับ การทำลายตัวแปรโค้ด
คำตัดสิน: ตัวแปร
Gemini และ GPT-4 เชื่อถือได้ DeepSeek เป็นอันตรายหากไม่มีการประมวลผลภายหลัง
รอบที่ 3: การรักษาสภาพ HTML Markup
สตริง WordPress มักจะมี HTML แบบอินไลน์ นี่คือตัวอย่างจริง:
msgid "Click <a href=\"%s\">here</a> to view your <strong>order</strong>."
msgstr ""
# Gemini 2.0 Flash
msgstr "<a href=\"%s\">Buraya</a> tıklayarak <strong>siparişinizi</strong> görüntüleyin."
# GPT-4
msgstr "Siparişinizi görüntülemek için <a href=\"%s\">buraya</a> tıklayın.</strong>"
# DeepSeek
msgstr "<a href=\"%s\">buraya</a> tıklayarak <strong>siparişinizi</strong> görüntüleyin."
GPT-4 ทำผิดพลาดเล็กน้อยแต่ร้ายแรง มันย้ายแท็กปิด </strong> ไปไว้ท้ายประโยค ห่างจากแท็กเปิด <strong> ผลลัพธ์: ทุกอย่างหลังจาก "order" บนหน้าเว็บจะแสดงเป็นตัวหนา ซึ่งอาจส่งผลต่อเค้าโครงทั้งหมดด้านล่าง
Gemini และ DeepSeek ทั้งคู่รักษาสภาพโครงสร้าง HTML ได้อย่างถูกต้องในกรณีนี้ อย่างไรก็ตาม ในการทดสอบสตริง 200 รายการทั้งหมดของเรา DeepSeek เพิ่มช่องว่างภายในแท็กปิดตัวเอง (<br /> กลายเป็น <br / >) ใน 3 กรณี
คำตัดสิน: HTML
Gemini สอดคล้องกันมากที่สุด GPT-4 และ DeepSeek ทั้งคู่ทำให้เกิดข้อผิดพลาดโครงสร้าง HTML ภายใต้เงื่อนไขบางประการ
รอบที่ 4: รูปแบบพหูพจน์
การจัดการพหูพจน์เป็นที่ที่เครื่องมือแปลส่วนใหญ่ล้มเหลวโดยสิ้นเชิง ภาษาอังกฤษมี 2 รูปแบบพหูพจน์ ภาษาตุรกีก็มี 2 รูปแบบเช่นกัน แต่ภาษาโปแลนด์มี 3 รูปแบบ และภาษาอาหรับมี 6 รูปแบบ
เราทดสอบสตริงนี้กับภาษาโปแลนด์ (nplurals=3):
msgid "%d item in your cart"
msgid_plural "%d items in your cart"
Gemini สร้างรายการ msgstr สามรายการได้อย่างถูกต้อง โดยแต่ละรายการผันตามช่วงตัวเลขที่เหมาะสม GPT-4 ยังสร้างสามรูปแบบ แต่บางครั้งก็ยุบรูปแบบที่ 1 และ 2 เป็นข้อความที่เหมือนกัน ซึ่งไม่ถูกต้องตามหลักไวยากรณ์สำหรับภาษาโปแลนด์ DeepSeek สร้างเพียงสองรูปแบบ โดยละเว้นข้อกำหนด nplurals=3 โดยสิ้นเชิง
สำหรับคำอธิบายที่ลึกซึ้งยิ่งขึ้นว่าเหตุใดเรื่องนี้จึงมีความสำคัญและวิธีที่ WordPress ใช้ส่วนหัว Plural-Forms โปรดดูคู่มือของเราเกี่ยวกับ พหูพจน์ Gettext
คำตัดสิน: พหูพจน์
Gemini นำ GPT-4 เป็นที่ยอมรับได้เมื่อมีการตรวจสอบ DeepSeek ล้มเหลวสำหรับภาษาที่มีรูปแบบพหูพจน์มากกว่า 2 รูปแบบ
รอบที่ 5: Context Disambiguation
ฟิลด์ msgctxt ใน Gettext บอกนักแปลว่าคำนั้นถูกใช้อย่างไร คำว่า "Post" สามารถหมายถึง:
- โพสต์ในบล็อก (คำนาม)
- การโพสต์ความคิดเห็น (คำกริยา)
- Mail/post (คำนาม ในภาษาอังกฤษแบบบริติช)
msgctxt "verb: to publish"
msgid "Post"
msgstr ""
msgctxt "noun: blog entry"
msgid "Post"
msgstr ""
Gemini แยกแยะระหว่างสองสิ่งนี้ได้อย่างถูกต้อง โดยสร้าง "Yayinla" (publish) สำหรับคำกริยา และ "Yazi" (article/entry) สำหรับคำนาม GPT-4 ก็จัดการสิ่งนี้ได้อย่างถูกต้องเช่นกัน DeepSeek แปลทั้งสองอย่างเป็น "Gonderi" (คำนามทั่วไป) โดยละเว้นคำแนะนำ msgctxt
ความตระหนักรู้ในบริบทไม่ใช่คุณสมบัติที่หรูหรา หากปุ่ม "Post" ของคุณเผยแพร่ความคิดเห็น แต่คำแปลบอกว่า "Article" ผู้ใช้ของคุณจะลังเลที่จะคลิก เราได้พูดคุยถึงเหตุผลที่ ความปลอดภัยของ AI ในการแปล WordPress ขึ้นอยู่กับความเข้าใจตามบริบทแบบนี้อย่างแม่นยำ
คำตัดสิน: Context
Gemini และ GPT-4 จัดการ msgctxt ได้ดี DeepSeek ละเลยมัน
บัตรคะแนน
| หมวดหมู่ | Gemini 2.0 Flash | GPT-4 | DeepSeek |
|---|---|---|---|
| สตริงอย่างง่าย | ผ่าน | ผ่าน | ผ่าน |
| ตัวแปร Printf | ผ่าน | ผ่าน | ไม่ผ่าน |
| การรักษาสภาพ HTML | ผ่าน | บางส่วน | บางส่วน |
| รูปแบบพหูพจน์ | ผ่าน | บางส่วน | ไม่ผ่าน |
| Context (msgctxt) | ผ่าน | ผ่าน | ไม่ผ่าน |
| โดยรวม | 5/5 | 3.5/5 | 1/5 |
เหตุใดเอาต์พุตโมเดล Raw จึงไม่เพียงพอ
แม้แต่ Gemini ซึ่งเป็นผู้ทำผลงานสูงสุดในการทดสอบของเราก็ไม่ได้ไร้ข้อผิดพลาด ในสตริง 200 รายการ มันทำให้เกิดปัญหาเกี่ยวกับระยะห่างใน 2 กรณี และเพิ่มเครื่องหมายจุดที่ไม่จำเป็นลงในสตริงที่ไม่มีในแหล่งที่มาหนึ่งครั้ง
นี่คือเหตุผลที่ การตรวจสอบหลังการประมวลผล มีความสำคัญ ไม่ว่าคุณจะใช้โมเดลใดก็ตาม เอาต์พุตจะต้องผ่าน:
- การทำให้เป็นมาตรฐานของตัวยึด เพื่อแก้ไข
% sกลับเป็น%s - การจับคู่เครื่องหมายวรรคตอน เพื่อให้แน่ใจว่าสตริงที่แปลแล้วลงท้ายด้วยอักขระเดียวกับแหล่งที่มา
- การบังคับใช้รูปแบบพหูพจน์ เพื่อตรวจสอบจำนวนรายการ
msgstrที่ถูกต้อง - การตรวจสอบจำนวนตัวแปร เพื่อยืนยันว่าทุก
%sและ%dจากแหล่งที่มาปรากฏในเป้าหมาย
นี่คือหลักการเบื้องหลัง Syntax Locking เลเยอร์การตรวจสอบที่อยู่ระหว่างโมเดล AI และไฟล์ .po สุดท้ายของคุณ มันจับข้อผิดพลาดทุกอย่างที่แม้แต่โมเดลที่ดีที่สุดก็ทำเป็นครั้งคราว
หากคุณกำลังประเมินเครื่องมือสำหรับเวิร์กโฟลว์ของคุณ บทสรุปของเราเกี่ยวกับ 5 เครื่องมือฟรีชั้นนำในการแก้ไขและแปลไฟล์ PO ครอบคลุมภูมิทัศน์ที่นอกเหนือไปจากโซลูชัน AI เท่านั้น
บรรทัดล่าง
ขณะนี้ Gemini 2.0 Flash เป็นโมเดลที่น่าเชื่อถือที่สุดสำหรับการแปลไฟล์ .po ของ WordPress มันจัดการตัวแปร HTML พหูพจน์ และบริบทได้ดีกว่าคู่แข่ง GPT-4 เป็นตัวเลือกที่สองที่แข็งแกร่ง แต่ต้องมีการตรวจสอบเอาต์พุต HTML และรูปแบบพหูพจน์อย่างละเอียด DeepSeek แม้จะมีจุดแข็งในงานเขียนโค้ดเอนกประสงค์ แต่ก็ไม่เหมาะสำหรับการแปล Gettext หากไม่มีการประมวลผลภายหลังอย่างหนัก
แต่นี่คือข้อมูลเชิงลึกที่สำคัญ: โมเดลเพียงอย่างเดียวไม่เพียงพอ แม้แต่ Gemini ก็ต้องการเลเยอร์การตรวจสอบเพื่อจับกรณีพิเศษ ความแตกต่างระหว่างเครื่องมือแปลภาษาอาชีพกับการเรียก API แบบ raw ไม่ใช่โมเดล AI มันคือทุกสิ่งที่เกิดขึ้นก่อนและหลังการเรียกใช้โมเดล
SimplePoTranslate ใช้ Gemini เป็นเอ็นจินหลัก ห่อหุ้มด้วยไปป์ไลน์ Context-Aware AI พร้อม Syntax Locking ที่จับและแก้ไขทุกตัวแปร แท็ก และรูปแบบพหูพจน์โดยอัตโนมัติ คุณจะได้รับโมเดลที่ดีที่สุดที่รวมกับตาข่ายนิรภัยที่ทำให้พร้อมสำหรับการผลิต
ต้องการเห็นความแตกต่างด้วยตัวคุณเองหรือไม่ อัปโหลดไฟล์ .po ของคุณและแปลสตริงได้สูงสุด 100 สตริงฟรีที่ SimplePoTranslate.com