Rosetta เปรียบเทียบกับเครื่องมืออื่นอย่างไร
i18n-rosetta จัดอยู่ในหมวดหมู่ที่แตกต่างจากเครื่องมือ localization ส่วนใหญ่ นี่คือการเปรียบเทียบอย่างตรงไปตรงมา
ภาพรวมของเครื่องมือ
เครื่องมือ localization ส่วนใหญ่จะจัดอยู่ในหนึ่งในสามหมวดหมู่นี้:
| หมวดหมู่ | ตัวอย่าง | รูปแบบ |
|---|---|---|
| Cloud TMS Platforms | Crowdin, Phrase, Locize, Tolgee | SaaS dashboard + นักแปลที่เป็นมนุษย์ + ค่าบริการรายเดือน |
| Key Extraction Tools | i18next-scanner, FormatJS CLI | สแกนซอร์สโค้ดเพื่อหาการเรียกใช้ฟังก์ชันการแปล |
| CLI Translation Engines | i18n-rosetta | รันในโปรเจกต์ของคุณ, แปลไฟล์โดยตรง, ไม่ต้องใช้บัญชีคลาวด์ |
Rosetta เป็น CLI translation engine — ซึ่งจะแปลไฟล์ locale ของคุณโดยตรงผ่าน backend ที่สามารถกำหนดค่าได้ (LLMs, Google Translate, custom plugins) ไม่มีแดชบอร์ดบนคลาวด์ ไม่มีเวิร์กโฟลว์สำหรับนักแปลที่เป็นมนุษย์ และไม่มีค่าบริการรายเดือน
การเปรียบเทียบฟีเจอร์
| ฟีเจอร์ | i18n-rosetta | Crowdin | Phrase | Locize |
|---|---|---|---|---|
| รันแบบโลคัล (ไม่ต้องใช้บัญชีคลาวด์) | ✅ | ❌ | ❌ | ❌ |
| ไม่มี Dependencies | ✅ | ❌ | ❌ | ❌ |
| กำหนดค่าวิธีการแปลแยกตามคู่ภาษา | ✅ | ❌ | ❌ | ❌ |
| กำหนดระดับภาษา (Registers) แบบกำหนดเอง | ✅ | ❌ | ❌ | ❌ |
| รับรู้บริบทเนื้อหา (ปกป้องบล็อกโค้ด) | ✅ | ❌ | ❌ | ❌ |
| แปลงภาษาประดิษฐ์ (Conlang) และสคริปต์ | ✅ | ❌ | ❌ | ❌ |
| สถาปัตยกรรมแบบ Plugin | ✅ | ❌ | ❌ | ❌ |
| แปล Markdown / เนื้อหา | ✅ | ✅ | ✅ | ❌ |
| Translation Memory | ✅ | ✅ | ✅ | ✅ |
| ส่งออก/นำเข้า XLIFF | ✅ | ✅ | ✅ | ❌ |
| ตรวจสอบ ICU plural | ✅ | ✅ | ✅ | ❌ |
| บังคับใช้คำศัพท์เฉพาะ (Terminology) | ✅ | ✅ | ✅ | ❌ |
| เวิร์กโฟลว์สำหรับนักแปลที่เป็นมนุษย์ | อิงตาม XLIFF | ✅ | ✅ | ✅ |
| แก้ไขตามบริบท (แบบเห็นภาพ) | ❌ | ✅ | ✅ | ✅ |
| การทำงานร่วมกันเป็นทีม | ❌ | ✅ | ✅ | ✅ |
| รองรับรูปแบบไฟล์ | JSON, TOML, YAML, MD, XLIFF | 50+ | 40+ | JSON |
| ราคา | ฟรี (จ่ายเฉพาะค่า LLM ของคุณ) | เริ่มต้น $0/เดือน | เริ่มต้น $0/เดือน | เริ่มต้น $0/เดือน |
เมื่อใดที่ควรใช้ Rosetta
Rosetta เหมาะสมเมื่อ:
- คุณต้องการให้ machine translation รวมอยู่ใน build pipeline ของคุณ — ไม่ใช่เวิร์กโฟลว์ที่แยกต่างหาก
- คุณต้องการควบคุมวิธีการแปลแยกตามภาษา (ใช้ LLM สำหรับบางภาษา, Google Translate สำหรับภาษาอื่น และ custom plugins สำหรับส่วนที่เหลือ)
- คุณกำลังแปลเป็นภาษาที่ไม่มี API รองรับ (ภาษาพื้นเมือง, ภาษาที่ใกล้สูญพันธุ์, ภาษาประดิษฐ์)
- คุณต้องการผลลัพธ์ของสคริปต์ที่แน่นอน (Cree Syllabics, Klingon pIqaD, Tengwar)
- คุณไม่ต้องการการผูกขาดจากผู้ให้บริการ (vendor lock-in) และไม่ต้องการพึ่งพาระบบคลาวด์
- คุณเป็นนักพัฒนาอิสระหรือทีมขนาดเล็กที่ไม่ต้องการแดชบอร์ด TMS แบบเต็มรูปแบบ
- คุณต้องการส่งมอบงานผ่าน XLIFF ให้นักแปลมืออาชีพโดยไม่ต้องสมัครสมาชิกคลาวด์
Cloud TMS จะเหมาะสมกว่าเมื่อ:
- คุณมีนักแปลมืออาชีพที่เป็นมนุษย์คอยตรวจสอบทุกข้อความ (เวิร์กโฟลว์ XLIFF ของ Rosetta นั้นเรียบง่ายกว่า TMS แบบเต็มรูปแบบ)
- คุณต้องการจัดการ translation memory และอภิธานศัพท์ (glossary) ข้ามโปรเจกต์
- คุณต้องการการแก้ไขแบบเห็นภาพตามบริบท (ดูตัวอย่างการแปลภายใน UI ของคุณ)
- คุณมีทีมขนาดใหญ่ที่ต้องการการควบคุมการเข้าถึงตามบทบาท (role-based access control)
- คุณต้องการการรองรับรูปแบบไฟล์มากกว่า 50 รูปแบบ
สิ่งที่ Rosetta ทำได้แต่ไม่มีใครทำได้
1. กำหนดระดับภาษา (Custom Registers)
ทุกคู่ภาษาจะได้รับคำแนะนำเรื่องน้ำเสียงที่เหมาะสมกับวัฒนธรรมสำหรับ LLM:
{
"de": {
"register": "Standard professional register. Use Sie-form for formal address."
},
"tl": {
"register": "Educated Manila Taglish. Use Tagalog as the primary language but keep technical terms in English."
},
"tlh": {
"register": "Warrior's honor. OVS grammar. Use Marc Okrand vocabulary."
}
}
ไม่มีเครื่องมืออื่นใดที่มาพร้อมกับระดับภาษาที่กำหนดค่าไว้ล่วงหน้าถึง 47 รายการ หรือให้คุณกำหนดระดับภาษาเองในแต่ละโปรเจกต์ได้
2. ตัวแปลงสคริปต์ที่ให้ผลลัพธ์แน่นอน (Deterministic Script Converters)
Rosetta มาพร้อมกับตัวแปลงสคริปต์ในตัว 5 ตัว ซึ่งทำงานเป็น post-translation hooks — โดยไม่ต้องใช้ LLM:
| Locale | การแปลง | ตัวอย่าง |
|---|---|---|
crk | SRO → Cree Syllabics | nêhiyawêwin → ᓀᐦᐃᔭᐍᐏᐣ |
sr | Latin → Cyrillic | Beograd → Београд |
tlh | Romanization → pIqaD | tlhIngan Hol → (อักขระ pIqaD) |
x-elvish-s | Latin → Tengwar | Sindarin → Tengwar (โหมด Beleriand) |
x-kryptonian | Latin → Kryptonian | การแทนที่รหัส (ต้องใช้ฟอนต์) |
สิ่งเหล่านี้คือตัวแปลงแบบตารางค้นหา (lookup-table) ล้วนๆ — ให้ผลลัพธ์ที่แน่นอน ตรวจสอบได้ และไม่มีความเสี่ยงที่ LLM จะสร้างข้อมูลเท็จ (hallucination)
3. การปกป้องแบบรับรู้บริบทเนื้อหา (Content-Aware Shielding)
เมื่อแปล Markdown หรือ rich content Rosetta จะปกป้อง:
- บล็อกโค้ด (Fenced code blocks) (
```) - โค้ดในบรรทัด (Inline code) (
` `) - Hugo shortcodes (
{{</* */>}},{{%/* */%}}) - ตัวแปรแทรก (Interpolation variables) (
{{ .Count }},{name},{{t('key')}}) - บล็อก Raw HTML
สิ่งเหล่านี้จะถูกแทนที่ด้วย Unicode sentinel tokens ก่อนการแปลและจะถูกกู้คืนในภายหลัง LLM จะไม่เห็นโค้ด, shortcodes หรือตัวแปรของคุณเลย
4. ปลั๊กอินวิธีการแปลแบบมีคำแนะนำ (Coached Method Plugins)
สำหรับภาษาที่ไม่มี API รองรับ คุณสามารถสร้างวิธีการแปลแบบมีคำแนะนำได้:
- เขียนข้อมูลคำแนะนำทางภาษา (กฎไวยากรณ์, คำศัพท์, ตัวอย่าง)
- รวมเข้าด้วยกันเป็นปลั๊กอิน
- วัดประสิทธิภาพเทียบกับคำแปลอ้างอิงโดยใช้ eval harness
- ติดตั้งลงในโปรเจกต์ของคุณด้วย
i18n-rosetta plugin install
นี่คือวิธีที่ Rosetta จัดการกับภาษา Plains Cree — และเป็นวิธีที่คุณสามารถใช้จัดการกับภาษาใดก็ได้ รวมถึงภาษาที่ยังไม่มีอยู่จริง
บทสรุป
Rosetta ไม่ใช่สิ่งทดแทน Crowdin แต่เป็นเครื่องมือที่แตกต่างกันสำหรับเวิร์กโฟลว์ที่ต่างกัน หากคุณต้องการนักแปลที่เป็นมนุษย์ ให้ใช้ TMS หากคุณต้องการ CLI ที่แปลไฟล์ของคุณด้วยคำสั่งเดียว และให้คุณควบคุมวิธีการ โมเดล และระดับภาษาแยกตามภาษาได้ — ให้ใช้ Rosetta