可以试试的想法
商店描述
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.
การเชื่อมต่อหลุด ความคืบหน้าของคุณถูกบันทึกไว้แล้ว
在翻译页面打开本页每组英泰对照都是编写的示意,用来说明请求字段控制什么,发布前已对照实际输出复核。请在控制台用您自己的文本试用,再做判断。
一个构建如何得到泰语
2024 年,泰国数字内容产业规模约 506.09 亿泰铢,同比增长约 14%,其中游戏是最大的板块,约 360 亿泰铢。泰国玩家和应用用户购买的产品来自全球。因此,其中的泰语文字大多是译文:从英文导出字符串表,做本地化,再放回构建。这项工作由数以千计的短字符串组成,返回时必须保持原有顺序、原有键名,以及引擎运行时要替换的那些占位符。
分批发送字符串表
导出键名,每次发送 200 个值,再按位置写回译文。响应保持请求中的顺序,任何键都不需要按内容匹配。
语体只选一次
正式程度和外来词处理都是请求字段。一次调用就能决定整批文字用随意语体,并让“quest”保留拉丁字母。这个决定只做一次,对整个构建生效。
每次发版重新运行
构建时,新增和改动的键走同一个调用,没变的键不再重发。补丁有多大,就花多少钱。
一次更新的字符串
如果每次只发一条,2 积分的请求最低收费会落在每条字符串上,同一个构建约需 $5。text 数组把最低收费摊薄到每个请求一次。同样的字符串分 13 个请求发送,约 $1.88。平均长度取自上方三行界面字符串,商店介绍段落不算界面字符串。
从字符串表到发布
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} 这样的占位符会怎样?
在术语表里把每个占位符映射到它自己,它就会作为术语被固定,并出现在返回的泰语字符串里。泰语语序会让占位符相对周围的词移动位置,正确的译文本来就该如此。请求契约中没有单独的占位符模式。把这条流水线纳入发版流程之前,请先用一个构建的字符串对照实际输出检查一遍。
我们的字符串大多只有两个词,最低收费会不会很贵?
只有逐条发送时才会。按每条 30 个字符计算,2,500 条字符串逐条发送约需 $5,每个请求 200 条则约 $1.88,因为 2 积分的最低收费每个请求只算一次。
泰语可以保持随意的语体吗?
可以。formality 字段接受“casual”“formal”或“auto”,对请求中的每条字符串都生效。整个构建都可以设成玩家习惯的语体。
我们的玩家习惯用英语读 quest 和 boss,可以保留吗?
borrowed_words 字段接受三个值:“preserve”保留拉丁字母,“transliterate”改写成泰文字母,“auto”逐个术语决定。无论如何都要按某种固定方式处理的术语,请放进术语表。
能本地化成其他语言吗?
目前目标语言始终是泰语。14 种源语言都可以指定,也可以逐条自动检测,这个 API 是一款译成泰语的产品。
从免费积分开始
使用 Google、GitHub 或 Hugging Face 登录,即可用 100 一次性免费积分处理您自己的文本。