การเปรียบเทียบ Rosetta กับเครื่องมืออื่น
i18n-rosetta จัดอยู่ในหมวดหมู่ที่แตกต่างจากเครื่องมือทำ Localization ส่วนใหญ่ นี่คือการเปรียบเทียบอย่างตรงไปตรงมา
ภาพรวมของเครื่องมือ
เครื่องมือทำ Localization ส่วนใหญ่แบ่งออกเป็น 3 หมวดหมู่หลัก ได้แก่:
| หมวดหมู่ | ตัวอย่าง | รูปแบบการทำงาน |
|---|---|---|
| Cloud TMS Platforms | Crowdin, Phrase, Locize, Tolgee | แดชบอร์ด SaaS + นักแปลที่เป็นมนุษย์ + ค่าบริการรายเดือน |
| Key Extraction Tools | i18next-scanner, FormatJS CLI | สแกนซอร์สโค้ดเพื่อหาการเรียกใช้ฟังก์ชันการแปล |
| CLI Translation Engines | i18n-rosetta | รันในโปรเจกต์ของคุณ, แปลไฟล์โดยตรง, ไม่ต้องใช้บัญชีคลาวด์ |
Rosetta เป็น CLI translation engine — ซึ่งจะแปลไฟล์ Locale ของคุณโดยตรงผ่าน Backend ที่สามารถกำหนดค่าได้ (LLMs, Google Translate, ปลั๊กอินแบบกำหนดเอง) ไม่มีแดชบอร์ดบนคลาวด์ ไม่มีเวิร์กโฟลว์สำหรับนักแปลที่เป็นมนุษย์ และไม่มีค่าบริการรายเดือน
การเปรียบเทียบฟีเจอร์
| ฟีเจอร์ | i18n-rosetta | Crowdin | Phrase | Locize |
|---|---|---|---|---|
| รันแบบโลคัล (ไม่ต้องใช้บัญชีคลาวด์) | ✅ | ❌ | ❌ | ❌ |
| ไม่มี Dependencies | ✅ | ❌ | ❌ | ❌ |
| กำหนดค่า Method แยกตามคู่ภาษาได้ | ✅ | ❌ | ❌ | ❌ |
| กำหนดระดับภาษา (Registers) ได้เอง | ✅ | ❌ | ❌ | ❌ |
| รับรู้บริบทเนื้อหา (ปกป้องบล็อกโค้ด) | ✅ | ❌ | ❌ | ❌ |
| รองรับภาษาประดิษฐ์ (Conlang) และการแปลงสคริปต์ | ✅ | ❌ | ❌ | ❌ |
| สถาปัตยกรรมแบบปลั๊กอิน | ✅ | ❌ | ❌ | ❌ |
| การแปล Markdown / เนื้อหา | ✅ | ✅ | ✅ | ❌ |
| เวิร์กโฟลว์สำหรับนักแปลที่เป็นมนุษย์ | ❌ | ✅ | ✅ | ✅ |
| หน่วยความจำการแปล (Translation memory) | ❌ | ✅ | ✅ | ✅ |
| การแก้ไขตามบริบท (แบบ Visual) | ❌ | ✅ | ✅ | ✅ |
| การทำงานร่วมกันเป็นทีม | ❌ | ✅ | ✅ | ✅ |
| การรองรับรูปแบบไฟล์ | JSON, TOML, YAML, MD | 50+ | 40+ | JSON |
| ราคา | ฟรี (จ่ายเฉพาะค่า LLM ของคุณ) | เริ่มต้น $0/เดือน | เริ่มต้น $0/เดือน | เริ่มต้น $0/เดือน |
เมื่อใดที่ควรใช้ Rosetta
Rosetta เหมาะสมเมื่อ:
- คุณต้องการให้ระบบแปลภาษาด้วยเครื่อง (Machine translation) ผสานรวมอยู่ใน Build pipeline ของคุณ — ไม่ใช่เวิร์กโฟลว์ที่แยกต่างหาก
- คุณต้องการควบคุม Method แยกตามภาษา (ใช้ LLM สำหรับบางภาษา, Google Translate สำหรับภาษาอื่น และปลั๊กอินแบบกำหนดเองสำหรับส่วนที่เหลือ)
- คุณกำลังแปลเป็นภาษาที่ไม่มี API รองรับ (ภาษาพื้นเมือง, ภาษาที่ใกล้สูญพันธุ์, ภาษาประดิษฐ์)
- คุณต้องการผลลัพธ์ของสคริปต์ที่แน่นอน (Cree Syllabics, Klingon pIqaD, Tengwar)
- คุณไม่ต้องการผูกขาดกับผู้ให้บริการรายใดรายหนึ่ง (Zero vendor lock-in) และไม่ต้องการพึ่งพาระบบคลาวด์
- คุณเป็นนักพัฒนาอิสระหรือทีมขนาดเล็กที่ไม่ต้องการเวิร์กโฟลว์สำหรับนักแปลที่เป็นมนุษย์
Cloud TMS จะเหมาะสมกว่าเมื่อ:
- คุณมีนักแปลมืออาชีพที่เป็นมนุษย์คอยตรวจสอบทุกข้อความ
- คุณต้องการระบบหน่วยความจำการแปล (Translation memory) และการจัดการอภิธานศัพท์ (Glossary) ข้ามโปรเจกต์
- คุณต้องการการแก้ไขตามบริบทแบบ Visual (ดูตัวอย่างการแปลภายใน 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 (Mode of Beleriand) |
x-kryptonian | Latin → Kryptonian | Cipher-substitution (ต้องใช้ฟอนต์) |
สิ่งเหล่านี้คือตัวแปลงแบบตารางค้นหา (Lookup-table) ล้วนๆ — ให้ผลลัพธ์ที่แน่นอน ตรวจสอบได้ และไม่มีความเสี่ยงจากการที่ LLM สร้างข้อมูลผิดพลาด (Zero LLM hallucination risk)
3. การปกป้องเนื้อหาตามบริบท (Content-Aware Shielding)
เมื่อแปล Markdown หรือเนื้อหาแบบ Rich content Rosetta จะทำการปกป้อง:
- บล็อกโค้ดแบบ Fenced (
```) - โค้ดแบบ Inline (
` `) - Hugo shortcodes (
{{</* */>}},{{%/* */%}}) - ตัวแปร Interpolation (
{{ .Count }},{name},{{t('key')}}) - บล็อก Raw HTML
สิ่งเหล่านี้จะถูกแทนที่ด้วย Unicode sentinel tokens ก่อนการแปลและจะถูกกู้คืนกลับมาในภายหลัง LLM จะไม่เห็นโค้ด, Shortcodes หรือตัวแปรของคุณเลย
4. ปลั๊กอิน Method แบบมีการฝึกสอน (Coached Method Plugins)
สำหรับภาษาที่ไม่มี API รองรับ คุณสามารถสร้าง Method การแปลแบบมีการฝึกสอน (Coached translation method) ได้:
- เขียนข้อมูลการฝึกสอนทางภาษา (กฎไวยากรณ์, คำศัพท์, ตัวอย่าง)
- รวมเข้าด้วยกันเป็นปลั๊กอิน
- วัดประสิทธิภาพ (Benchmark) เทียบกับคำแปลอ้างอิงโดยใช้ eval harness
- ติดตั้งลงในโปรเจกต์ของคุณด้วย
i18n-rosetta plugin install
นี่คือวิธีที่ rosetta จัดการกับภาษา Plains Cree — และเป็นวิธีที่คุณสามารถใช้จัดการกับภาษาใดๆ ก็ได้ รวมถึงภาษาที่ยังไม่มีอยู่จริงด้วย
บทสรุป
Rosetta ไม่ได้ถูกสร้างมาเพื่อแทนที่ Crowdin แต่เป็นเครื่องมือที่แตกต่างกันสำหรับเวิร์กโฟลว์ที่ต่างกัน หากคุณต้องการนักแปลที่เป็นมนุษย์ ให้ใช้ TMS หากคุณต้องการ CLI ที่แปลไฟล์ของคุณด้วยคำสั่งเดียว และให้คุณควบคุม Method, Model และระดับภาษา (Registers) แยกตามภาษาได้ — ให้ใช้ rosetta