用途
translate-questions 是 Prawko 驾照考试应用的翻译专用技能,负责将全部 3,719 道官方波兰语驾照考试题翻译为目标语言。当用户要求翻译题目、新增一种语言或更新现有翻译时使用。
数据结构
源数据为分类 JSON 文件,位于 src/data/{A,A1,A2,AM,B,B1,C,C1,D,D1,PT,T}.json。每个文件包含 category 字段和 questions 数组。题目有两种类型:
- type 为 "basic":是/否(TAK/NIE)题,只需翻译 q 字段。
- type 为 "specialist":A/B/C 多选题,需翻译 q、a、b、c 字段。
输出为翻译文件,位于 src/data/translations_{lang}.json,格式为以字符串 ID 为键的对象,仅包含内容非空的字段。
工作流程
- 收集唯一题目:题目在各分类间共享,需按 ID 去重。技能提供了 Python 脚本遍历 src/data 目录(跳过 meta.json 和 translations_ 开头的文件)统计唯一题目数量。
- 检查已有翻译:加载现有翻译文件,找出尚未翻译的题目。
- 分批并行翻译:将未翻译题目分成 6 批(每批约 620 题),写入 /tmp/prawko_batch_{i}.json,通过 Task 工具启动 6 个并行代理,每个代理读取自己的批次文件、翻译后写入 /tmp/prawko_translated_{i}.json。代理提示模板要求:翻译 q 字段;specialist 题额外翻译 a、b、c;basic 题只翻译 q;输出仅含非空字段;自然准确翻译交通规则、道路标志、车辆操作等内容;必须处理全部题目并写出完整输出文件。
- 合并结果:所有代理完成后,将各批次输出合并为最终翻译文件,并打印翻译总数。
- 接入新语言(若为新增语言):在 src/js/i18n.js 的 translations 对象中添加新键;在 src/index.html 的 .lang-toggle div 中添加语言按钮;更新 src/js/i18n.js 中的 translateQuestion() 以处理新语言代码;如有需要,在 src/sw.js 的 service worker 缓存中添加。
翻译准则
- 保持翻译简洁清晰。
- 使用目标语言的标准驾驶/交通术语。
- 保留技术术语(如车辆类型、道路标志名称)。
- 不翻译专有名词或波兰法律引用,保持原样。
- 对 "km/h"、"t"(吨)等缩写保留原始单位。
- "TAK/NIE" 答案不在 JSON 中翻译,由 UI 的 i18n 系统处理。
验证
翻译完成后,技能提供 Python 脚本验证输出:加载翻译文件,打印已翻译题目数与总数(3719)的对比,并检查缺失题目。
适用场景
适用于 Prawko 应用需要新增语言支持、批量翻译题库或更新已有翻译的场景。
限制
该技能针对 Prawko 项目的特定目录结构和数据格式设计,依赖 src/data 下的分类 JSON 文件与 i18n 系统。关于收费、价格、平台支持范围等信息,资料中暂未提供。