Paxa Labs

แปลเกมและแอปเป็นภาษาไทย

แปลข้อความหน้าจอ การแจ้งเตือน และคำโปรยหน้าร้านค้าเป็นภาษาไทย ส่งได้ครั้งละสูงสุด 200 ข้อความ พร้อมเลือกระดับภาษาและวิธีจัดการคำทับศัพท์ในคำขอเดียว

ไอเดียให้ลองเล่น

แบนเนอร์รางวัลประจำวัน

Claim your daily reward!

รับรางวัลประจำวันได้เลย!

เปิดในหน้าแปลภาษา

ข้อความที่มีตัวแปร

{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(เปิดในแท็บใหม่)

  1. ส่งตารางข้อความเป็นชุด

    ส่งออกคีย์ทั้งหมด ส่งค่าข้อความครั้งละ 200 รายการ แล้วเขียนคำแปลกลับตามตำแหน่ง การตอบกลับเรียงตามลำดับของคำขอ จึงไม่ต้องจับคู่คีย์จากเนื้อความ

  2. เลือกระดับภาษาครั้งเดียว

    ระดับภาษาและวิธีจัดการคำทับศัพท์เป็นฟิลด์ในคำขอ คำขอเดียวจึงกำหนดได้ว่าทั้งชุดอ่านแบบกันเอง และคำว่า quest คงเป็นอักษรละติน การตัดสินใจนี้ทำครั้งเดียวสำหรับทั้งเวอร์ชัน

  3. ทำซ้ำทุกครั้งที่ปล่อยเวอร์ชันใหม่

    คีย์ใหม่และคีย์ที่แก้ไขวิ่งผ่านคำขอเดิมตอนบิลด์ ส่วนคีย์ที่ไม่เปลี่ยนไม่ต้องส่งซ้ำ แพตช์หนึ่งครั้งจึงจ่ายเท่าที่แพตช์นั้นเปลี่ยนจริง

ข้อความทั้งชุดของอัปเดตเดียว

ป้ายเมนูDaily rewardsรางวัลประจำวัน13
การแจ้งเตือน{playerName} joined your party{playerName} เข้าร่วมปาร์ตี้ของคุณแล้ว30
คำอธิบายปุ่มHold to sprint. Stamina refills when you stop.กดค้างเพื่อวิ่ง พลังงานจะฟื้นเมื่อหยุดพัก46
ข้อความหน้าร้านค้าSeason 4 adds two districts, a co-op mode for four players, and a rebuilt map. Your save carries over.ซีซัน 4 เพิ่มย่านใหม่สองแห่ง โหมดร่วมมือสำหรับสี่คน และแผนที่ที่สร้างใหม่ทั้งหมด เซฟเดิมของคุณใช้ต่อได้102
ข้อความหน้าจอ 2,500 รายการ เฉลี่ยรายการละ 30 ตัวอักษร ส่งครั้งละ 200 รายการประมาณ $1.88

ถ้าส่งทีละข้อความ ค่าบริการขั้นต่ำ 2 เครดิตจะตกกับทุกข้อความ ชุดเดียวกันนี้จะกลายเป็นประมาณ $5 แต่การส่งเป็นชุดเฉลี่ยขั้นต่ำเหลือครั้งเดียวต่อคำขอ ข้อความชุดเดิมจึงคิดเป็นประมาณ $1.88 ใน 13 คำขอ ค่าเฉลี่ยคำนวณจากสามแถวที่เป็นข้อความหน้าจอด้านบน ส่วนคำโปรยหน้าร้านค้าไม่นับเป็นข้อความหน้าจอ

จากตารางข้อความถึงเวอร์ชันที่ปล่อยจริง

  1. 2,500 คีย์

    ส่งออก en.json

    ตารางข้อความออกจากตัวเกมเป็นคู่คีย์และค่า ตรงตามที่เอนจินเขียนไว้
  2. text[200]

    หนึ่งคำขอต่อ 200 คีย์

    ค่าข้อความถูกส่งไปในฟิลด์ text และกลับมาตามลำดับที่ส่ง จึงไม่ต้องจับคู่คีย์จากเนื้อความ
  3. glossary

    ตรึงตัวแปรในข้อความ

    ใส่ตัวแปรแต่ละตัวลงในอภิธานศัพท์โดยแปลงเป็นตัวมันเอง ตัวแปรจึงยังอยู่ในข้อความภาษาไทยขณะที่คำรอบ ๆ ขยับตำแหน่ง
  4. คีย์เดิม ลำดับเดิม

    ได้ 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}`);
}

ภาษาไทยในเกมเป็นระดับภาษาของตัวมันเอง

ผู้เล่นอ่านภาษาไทยอีกระดับหนึ่ง คือสั้น เร็ว และมีศัพท์อังกฤษที่ผู้เล่นไทยอ่านเป็นภาษาอังกฤษ ไม่ได้อยากให้แปล ตัวควบคุมในคำขอจึงเลือกได้เป็นคำ ๆ ว่า 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 เครดิตกับข้อความของคุณเอง