แปลเกมและแอปเป็นภาษาไทย
แปลข้อความหน้าจอ การแจ้งเตือน และคำโปรยหน้าร้านค้าเป็นภาษาไทย ส่งได้ครั้งละสูงสุด 200 ข้อความ พร้อมเลือกระดับภาษาและวิธีจัดการคำทับศัพท์ในคำขอเดียว
ไอเดียให้ลองเล่น
ข้อความที่มีตัวแปร
{playerName} joined your party
{playerName} เข้าร่วมปาร์ตี้ของคุณแล้ว
เปิดในหน้าแปลภาษาคำโปรยหน้าร้านค้า
Build a shop, hire a crew, and keep the whole street fed before closing time. Ninety levels, no timers, offline play.
สร้างร้าน จ้างทีมงาน แล้วเลี้ยงคนทั้งถนนให้อิ่มก่อนร้านปิด มีให้เล่น 90 ด่าน ไม่มีระบบจับเวลา และเล่นออฟไลน์ได้
เปิดในหน้าแปลภาษาข้อความแจ้งข้อผิดพลาดที่ไม่ทำให้ตกใจ
Connection lost. Your progress is saved.
การเชื่อมต่อหลุด ความคืบหน้าของคุณถูกบันทึกไว้แล้ว
เปิดในหน้าแปลภาษาคู่ประโยคอังกฤษ-ไทยทุกคู่ในหน้านี้ เป็นตัวอย่างที่เรียบเรียงขึ้น เพื่อแสดงว่าฟิลด์ของคำขอควบคุมอะไร และตรวจทานกับผลลัพธ์จริงก่อนเผยแพร่ ลองข้อความของคุณเองในเพลย์กราวด์แล้วตัดสินที่นั่น
เกมหรือแอปหนึ่งเวอร์ชันได้ภาษาไทยมาอย่างไร
อุตสาหกรรมดิจิทัลคอนเทนต์ของไทยมีมูลค่าราว 50,609 ล้านบาทในปี 2024 เติบโตราว 14 เปอร์เซ็นต์จากปีก่อน โดยเกมเป็นส่วนที่ใหญ่ที่สุดราว 36,000 ล้านบาท แคตตาล็อกที่ผู้เล่นและผู้ใช้แอปชาวไทยเลือกซื้อเป็นแคตตาล็อกระดับโลก ข้อความภาษาไทยในนั้นส่วนใหญ่จึงเป็นข้อความที่ผ่านการแปล คือตารางข้อความที่ส่งออกจากฉบับภาษาอังกฤษ แปล แล้วส่งกลับเข้าตัวเกม งานนี้เป็นข้อความสั้นหลักพันรายการที่ต้องกลับมาตามลำดับเดิม อยู่ใต้คีย์เดิม และคงตัวแปรที่เอนจินจะแทนค่าตอนรันไว้ครบ
ที่มา:DEPA(เปิดในแท็บใหม่)
ส่งตารางข้อความเป็นชุด
ส่งออกคีย์ทั้งหมด ส่งค่าข้อความครั้งละ 200 รายการ แล้วเขียนคำแปลกลับตามตำแหน่ง การตอบกลับเรียงตามลำดับของคำขอ จึงไม่ต้องจับคู่คีย์จากเนื้อความ
เลือกระดับภาษาครั้งเดียว
ระดับภาษาและวิธีจัดการคำทับศัพท์เป็นฟิลด์ในคำขอ คำขอเดียวจึงกำหนดได้ว่าทั้งชุดอ่านแบบกันเอง และคำว่า quest คงเป็นอักษรละติน การตัดสินใจนี้ทำครั้งเดียวสำหรับทั้งเวอร์ชัน
ทำซ้ำทุกครั้งที่ปล่อยเวอร์ชันใหม่
คีย์ใหม่และคีย์ที่แก้ไขวิ่งผ่านคำขอเดิมตอนบิลด์ ส่วนคีย์ที่ไม่เปลี่ยนไม่ต้องส่งซ้ำ แพตช์หนึ่งครั้งจึงจ่ายเท่าที่แพตช์นั้นเปลี่ยนจริง
ข้อความทั้งชุดของอัปเดตเดียว
ถ้าส่งทีละข้อความ ค่าบริการขั้นต่ำ 2 เครดิตจะตกกับทุกข้อความ ชุดเดียวกันนี้จะกลายเป็นประมาณ $5 แต่การส่งเป็นชุดเฉลี่ยขั้นต่ำเหลือครั้งเดียวต่อคำขอ ข้อความชุดเดิมจึงคิดเป็นประมาณ $1.88 ใน 13 คำขอ ค่าเฉลี่ยคำนวณจากสามแถวที่เป็นข้อความหน้าจอด้านบน ส่วนคำโปรยหน้าร้านค้าไม่นับเป็นข้อความหน้าจอ
จากตารางข้อความถึงเวอร์ชันที่ปล่อยจริง
2,500 คีย์
ส่งออก en.json
ตารางข้อความออกจากตัวเกมเป็นคู่คีย์และค่า ตรงตามที่เอนจินเขียนไว้text[200]
หนึ่งคำขอต่อ 200 คีย์
ค่าข้อความถูกส่งไปในฟิลด์ text และกลับมาตามลำดับที่ส่ง จึงไม่ต้องจับคู่คีย์จากเนื้อความglossary
ตรึงตัวแปรในข้อความ
ใส่ตัวแปรแต่ละตัวลงในอภิธานศัพท์โดยแปลงเป็นตัวมันเอง ตัวแปรจึงยังอยู่ในข้อความภาษาไทยขณะที่คำรอบ ๆ ขยับตำแหน่งคีย์เดิม ลำดับเดิม
ได้ th.json พร้อมใช้
เขียนคำแปลกลับเข้าคีย์เดิม ไฟล์ก็พร้อมเข้าตัวเกมโดยโครงสร้างไม่เปลี่ยน
สำหรับนักพัฒนา
ฟิลด์ text รับข้อความได้ถึง 200 รายการและคืนผลตามลำดับเดิม คีย์ข้อความของคุณจึงไม่ขยับ
เอกสารอ้างอิง API ฉบับเต็ม// One request, one charge: segments share document context and the // per-request minimum applies once. const strings = ["Sign in", "Create account", "Forgot password?"]; const response = await fetch("https://api.paxalabs.com/v1/translate", { method: "POST", headers: { Authorization: `Bearer ${process.env.PAXA_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ text: strings, model: "paxa-translation-lite-v1" }), }); const { translations } = await response.json(); for (const [index, item] of translations.entries()) { console.log(`${strings[index]} -> ${item.text}`); }
const response = await fetch("https://api.paxalabs.com/v1/translate", { method: "POST", headers: { Authorization: `Bearer ${process.env.PAXA_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ text: "Welcome to our store. Free shipping on orders over 500 baht.", model: "paxa-translation-lite-v1", formality: "formal", }), // A large request can run for minutes; give it room. signal: AbortSignal.timeout(300_000), }); if (!response.ok) throw new Error(`Translation failed: ${response.status}`); const { translations, usage } = await response.json(); console.log(translations[0].text, `${usage.credits} credits`);
{ "translations": [ { "text": "ยินดีต้อนรับสู่ร้านของเรา ส่งฟรีเมื่อสั่งซื้อครบ 500 บาท", "detected_source": "en" } ], "usage": { "text_chars": 60, "reference_chars": 0, "billable_chars": 60, "credits": 2, "glossary_terms_sent": 0, "glossary_terms_available": 0 } }
ภาษาไทยในเกมเป็นระดับภาษาของตัวมันเอง
ผู้เล่นอ่านภาษาไทยอีกระดับหนึ่ง คือสั้น เร็ว และมีศัพท์อังกฤษที่ผู้เล่นไทยอ่านเป็นภาษาอังกฤษ ไม่ได้อยากให้แปล ตัวควบคุมในคำขอจึงเลือกได้เป็นคำ ๆ ว่า quest จะคงเป็นอักษรละติน กลายเป็น เควสต์ หรือใช้คำไทย และอภิธานศัพท์จะรักษาการตัดสินใจนั้นไว้กับข้อความทุกรายการในเวอร์ชันนั้น ทีมที่อยู่เบื้องหลังโมเดลทำงานกับภาษาไทยอยู่ที่กรุงเทพฯ
คำถามที่พบบ่อย
ตัวแปรอย่าง {playerName} จะเป็นอย่างไร
ใส่ตัวแปรแต่ละตัวลงในอภิธานศัพท์โดยแปลงเป็นตัวมันเอง ตัวแปรจะถูกตรึงในฐานะคำศัพท์และกลับมาอยู่ในข้อความภาษาไทย ทั้งนี้ลำดับคำของภาษาไทยจะทำให้ตำแหน่งของตัวแปรขยับเมื่อเทียบกับคำรอบข้าง ซึ่งเป็นสิ่งที่คำแปลที่ถูกต้องควรเป็น สัญญาของ API ไม่ได้กำหนดโหมดจัดการตัวแปรแยกไว้ ก่อนนำไปใช้ในกระบวนการปล่อยเวอร์ชันจริง จึงควรทดสอบข้อความชุดหนึ่งกับผลลัพธ์จริงก่อนหนึ่งรอบ
ข้อความของเราส่วนใหญ่ยาวสองคำ ค่าบริการขั้นต่ำจะทำให้แพงไหม
แพงเฉพาะตอนส่งทีละรายการ ที่ความยาวเฉลี่ย 30 ตัวอักษร ข้อความ 2,500 รายการคิดเป็นประมาณ $5 เมื่อส่งทีละรายการ และประมาณ $1.88 เมื่อส่งครั้งละ 200 รายการ เพราะขั้นต่ำ 2 เครดิตคิดครั้งเดียวต่อคำขอ
ให้ภาษาไทยออกมาแบบกันเองได้ไหม
ได้ ฟิลด์ formality รับค่า "casual" "formal" หรือ "auto" และมีผลกับข้อความทุกรายการในคำขอเดียวกัน ทั้งเวอร์ชันจึงตั้งให้อ่านเป็นระดับภาษาที่ผู้เล่นคุ้นเคยได้
ผู้เล่นของเราอ่านคำว่า quest กับ boss เป็นภาษาอังกฤษ คงไว้ได้ไหม
ฟิลด์ borrowed_words รับค่า "preserve" เพื่อคงคำไว้เป็นอักษรละติน "transliterate" เพื่อเขียนเป็นอักษรไทย หรือ "auto" เพื่อให้เลือกเป็นคำ ๆ ส่วนคำที่ต้องการให้เป็นแบบใดแบบหนึ่งเสมอ ให้ใส่ไว้ในอภิธานศัพท์
แปลเป็นภาษาอื่นด้วยได้ไหม
ยังไม่ได้ ปลายทางเป็นภาษาไทยเสมอ คุณกำหนดภาษาต้นทางได้ 14 ภาษา หรือให้ตรวจจับเป็นรายข้อความ แต่ API นี้เป็นผลิตภัณฑ์สำหรับแปลเข้าสู่ภาษาไทย
เริ่มต้นด้วยเครดิตฟรี
เข้าสู่ระบบด้วย Google, GitHub หรือ Hugging Face แล้วใช้เครดิตฟรี 100 เครดิตกับข้อความของคุณเอง
บทความที่เกี่ยวข้อง
ตัวอย่างการใช้งานอื่น