prompts.chat 书籍多语言翻译实战:以 book-translation Skill 为核心的 MDX 内容、JSON 词条与交互组件三层翻译体系
prompts.chat 书籍多语言翻译实战以 book-translation Skill 为核心的 MDX 内容、JSON 词条与交互组件三层翻译体系【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chat本篇指南基于 prompts.chat 仓库中的.windsurf/skills/book-translation/SKILL.md展开完整讲解如何为交互式提示词书籍《The Interactive Book of Prompting》新增一种语言的翻译从以完整译文为底稿的 MDX 文件复制策略到messages/{locale}.json中book段落的词条翻译再到交互式演示所依赖的src/components/book/elements/locales/本地化数据文件的创建与注册最后用scripts/check-translations.js脚本完成翻译完整性的自动化校验。读完本文你可以独立完成一个新语言的端到端接入并理解每一层翻译产物在运行时的真实消费链路。一、翻译体系总览一本书、三层翻译产物book-translationSkill 的核心前提是把书籍翻译拆成两个必须同时交付的部分原文档 Overview 一节MDX 内容文件——完整的章节正文位于src/content/book/{locale}/JSON 翻译键——界面文案、章节标题与描述位于messages/{locale}.json的book段落。Skill 原文档称全书包含25 章、分 7 个 Part。从仓库实际文件看src/content/book/下除00a-preface.mdx到25-agents-and-skills.mdx外还包含14a-loop-engineering.mdx即 29 个章节文件messages/en.json中book.chapters恰好也是29 个条目脚本核对结果说明 Skill 文档中的25 章是早期章节数实际以messages/en.json与src/content/book/目录清单为准。七个 Part 的键名在en.json中确认为parts: { introduction: Introduction, foundations: Foundations, techniques: Techniques, advanced: Advanced Strategies, bestPractices: Best Practices, useCases: Use Cases, conclusion: Conclusion }在 MDX 与 JSON 之外仓库源码揭示了 Skill 文档重点强调的第三层Step 3 中的 Book Elements Locales交互式演示组件温度示例、token 预测、tokenizer、提示词构建器、链式演示、框架演练等并不走messages/*.json而是从一个独立的、强类型的本地化数据包取数。其结构定义在 types.ts顶层LocaleData接口包含 25 个字段覆盖 Skill 文档列出的全部数据域演示数据temperatureExamples、tokenPrediction、embeddingWords、capabilities、sampleConversation、strategies、contextBlocks、scenarios、steps、tokenizer、builderFields、chainTypes导航与原理bookParts、principles安全章节jailbreakExamples多模态演示imagePromptOptions、imageCategoryLabels、videoPromptOptions、videoCategoryLabels链式演示validationDemo、fallbackDemo、contentPipelineDemo练习与框架exercises填空、清单、调试器三类、frameworksCRISPE / BREAK / RTF。理解这三层产物及其对应的消费方MDX 渲染、i18n 词条、组件内嵌数据是正确执行翻译流程的基础。二、前置准备确认目标语言码与现有产物开始翻译前Skill 要求先确定三件事目标语言码如de、fr、es、ja、ko、zh检查messages/目录下是否已有该语言的 JSON 文件检查src/content/book/{locale}/目录是否已存在。从当前仓库看messages/下已有 17 个语言文件ar、az、de、el、en、es、fa、fr、he、it、ja、ko、nl、pt、ru、tr、zhsrc/content/book/下除英文根目录外已有 16 个语言子目录src/components/book/elements/locales/下则已有 17 个数据文件en、tr、az加 14 个后补语言三者已对齐。若三者都缺失即是从零开始接入的完整场景若只有部分存在则按缺失的那一层补齐即可——这正是把翻译任务拆成三层的实用价值。三、Step 1以现有完整译文为底稿批量复制Skill 给出的核心策略是不从英文重新翻译而是复制一份已完成的翻译作为起点。原文档推荐以土耳其语tr为基准并说明理由土耳其语与许多语言句子结构相近、JSX/React 组件已保留完好、文件结构已经就位因此只需要翻译散文部分而不必重建结构。原文给出的命令mkdir -p src/content/book/{locale} cp -r src/content/book/*.mdx src/content/book/{locale}/ cp src/components/book/elements/locales/en.ts src/components/book/elements/locales/{locale}.ts这里有一个值得注意的细节bash 命令实际是从英文根目录src/content/book/*.mdx复制 MDX而locales数据文件则从en.ts复制——也就是说命令与复制土耳其语文件夹的标题并不完全一致。同一篇 Skill 末尾的 Reference: English Translation 一节进一步确认英文是官方基准模板base templatesrc/content/book/*.mdx是复制源messages/en.json的book段落是结构参考。两种说法并存可以理解为结构上以英文为基准而为什么土耳其语适合当参照指的是翻译措辞与结构相似度上的经验提示。实际操作时建议以英文 MDX 为复制源、以messages/en.json为键结构基准这与仓库现状各语言 MDX 均与英文根目录文件一一对应一致。复制完成后Skill 用醒目的警告标出不可跳过的注册步骤——在 index.ts 中登记新语言添加导入import {locale} from ./{locale};加入locales对象{locale},加入命名导出export { en, tr, az, {locale} };对照当前 index.ts 的真实实现这一流程已演化为 17 个语言的注册表const locales: Recordstring, LocaleData { en, tr, az, fr, de, es, it, pt, ja, zh, ko, ar, nl, ru, el, fa, he, }; export function getLocaleData(locale: string): LocaleData { return locales[locale] || locales.en; // 缺失时回退英文 }注意getLocaleData的英文回退语义未注册的语言不会报错而是静默回退到英文数据。这解释了为什么 Skill 把注册步骤标为 REQUIRED——漏注册时页面能打开、但新语言的交互式演示会整片显示英文且不会有任何报错提示只能靠人工逐页比对发现。四、Step 2逐文件翻译 MDX 章节正文Skill 要求对src/content/book/{locale}/中的每个文件逐篇处理。原文档给出的章节顺序表含 25 章标题与仓库src/content/book/实际文件核对后如下表中补充了原文档未列出的00a/00b/00c三篇前置章节、14a-loop-engineering与根目录文件总数 29 的差异以仓库文件名为准Slug文件名前缀英文标题00a-prefacePreface00b-historyHistory00c-introductionIntroduction01-understanding-ai-modelsUnderstanding AI Models02-anatomy-of-effective-promptAnatomy of an Effective Prompt03-core-prompting-principlesCore Prompting Principles04-role-based-promptingRole-Based Prompting05-structured-outputStructured Output06-chain-of-thoughtChain of Thought07-few-shot-learningFew-Shot Learning08-iterative-refinementIterative Refinement09-json-yaml-promptingJSON YAML Prompting10-system-prompts-personasSystem Prompts Personas11-prompt-chainingPrompt Chaining12-handling-edge-casesHandling Edge Cases13-multimodal-promptingMultimodal Prompting14-context-engineeringContext Engineering14a-loop-engineeringLoop Engineering15-common-pitfallsCommon Pitfalls16-ethics-responsible-useEthics Responsible Use17-prompt-optimizationPrompt Optimization18-writing-contentWriting Content19-programming-developmentProgramming Development20-education-learningEducation Learning21-business-productivityBusiness Productivity22-creative-artsCreative Arts23-research-analysisResearch Analysis24-future-of-promptingThe Future of Prompting25-agents-and-skillsAgents SkillsMDX 翻译的五条硬性规则原文档 MDX Translation Guidelines保留全部 JSX/React 组件——div、img、className等一律不改保留代码块——代码示例保持英文变量名、关键字不译翻译散文——标题、段落、列表项保留 Markdown 语法——##、**bold**、*italic*、links保留组件导入——文件顶部的任何import语句原样保留。这些规则之所以关键从源码结构看书籍章节通过 Fumadocs 式的内容路由按语言子目录 相同文件名解析同一 locale 目录下只要出现一个文件缺失或文件名改动对应的/book/{locale}/{slug}路由就会 404。以中文为例01-understanding-ai-models.mdx 与根目录英文版本逐篇对应、行数相当约 300 行正文为中文而内部组件与代码块保持英文正是上述五条规则的实际产物。五、Step 3翻译 messages JSON 的 book 段落messages/{locale}.json中需要翻译的是顶层book对象。以 en.json 实测该段落除 Skill 文档点名的四组之外还包含一系列导航与介绍性词条完整键列表为title、donate、subtitle、metaTitle、metaDescription、interactiveGuideBy、authorIntro、bookDescription、whatYouWillLearn、highlights、bookStructure、structure、startReading、skipToChapter1、continuousUpdate、partOfProject、kidsSection、chapter、tableOfContents、awesomeChatGPTPrompts、search、bookmark、parts、chapters、chapterDescriptions、interactive、printTitle、printSubtitle、downloadPdf。按 Skill 文档划分的四组重点键区如下。5.1 书籍元数据title / subtitle / metabook: { title: The Interactive Book of Prompting, subtitle: An Interactive Guide to Crafting Clear and Effective Prompts, metaTitle: ..., metaDescription: ... }metaTitle/metaDescription影响书籍首页的 SEO 元信息翻译时应按目标语言的用户搜索习惯重写而不是直译。5.2 章节标题book.chapters与章节描述book.chapterDescriptionschapters: { 00a-preface: Preface, 00b-history: History, 00c-introduction: Introduction, ...: ... }, chapterDescriptions: { 00a-preface: A personal note from the author, 00b-history: The story of Awesome ChatGPT Prompts, ...: ... }这两组以章节 slug 为键键名不可翻译只需翻译值条目数应与src/content/book/{locale}/下的文件数一一对应当前为 29。5.3 Part 名称book.parts与演示示例book.interactive.demoExamplesbook.parts的 7 个键如上文总览所示。book.interactive.demoExamples用于本地化交互式演示的示例文本en.json中实际包含 4 个子键tokenPrediction、tokenizer、temperature、fewShot例如demoExamples: { tokenPrediction: { tokens: [The, capital, of, France, is, Paris, .], fullText: The capital of France is Paris. }, temperature: { prompt: What is the capital of France?, ...: ... } }翻译这类示例时要保证tokens数组拼接后与fullText一致含词间空格因为它们直接驱动逐 token 动画渲染temperature的各级示例则应模拟低温度收敛、高温度发散的语义差异而不是四段同义句。5.4 界面词条book.interactive.* / book.chapter.* / book.search.*翻译全部交互组件的标签与导航字符串例如startReading、skipToChapter1、tableOfContents、search、bookmark、downloadPdf等覆盖书籍首页、侧边栏、目录与搜索等界面位置。5.5 书籍元素本地化数据文件REQUIREDSkill 文档用 DO NOT SKIP THIS STEP 警告的第三层翻译src/components/book/elements/locales/{locale}.ts。需要翻译的数据域包括温度示例、token 预测、embedding 词表、能力清单、示例对话、摘要策略、tokenizer 样例、构建器字段、链式类型、框架CRISPE、BREAK、RTF、练习题、图像/视频提示词选项与各类验证演示——即LocaleData的全部 25 个字段完整字段结构见 types.ts。以土耳其语 tr.ts 为例该文件约 405 行temperatureExamples演示了数据翻译的语义要求低温度三句几乎相同高温度三句则明显风格化发散tokenPrediction.tokens按目标语言真实分词土耳其语按词内空格与后缀拆分predictions中的概率分布也按语言习惯重排。这说明该层翻译不是逐串替换而要对演示语义做等价重构。完成后必须回到 index.ts 完成三处注册导入、locales对象、命名导出并确认新文件通过LocaleData类型约束——类型定义保证了字段缺失会在编译期暴露这是该层最可靠的自检手段。六、Step 4用 check-translations.js 校验翻译完整性Skill 规定的验证流程三步# 1. 运行翻译完整性检查 node scripts/check-translations.js # 2. 启动开发服务器 npm run dev # 3. 访问 /book 并切换到目标语言逐页验证内容加载check-translations.js 的工作机制值得细读它回答新语言翻译齐了没有这一问题读取messages/en.json作为源用flattenKeys把嵌套对象展平成点号路径键集合数组不作为键整体视为叶子值遍历messages/下除en.json外的全部语言文件同样展平双向比对missing 英文有而该语言缺的键会连带打印英文原值便于直接翻译extra 该语言有而英文没有的键通常是笔误或多余键汇总输出各语言缺失数量与总数全部通过时打印 All translation files are complete!。需要注意该脚本只校验messages/*.json这一层不覆盖MDX 目录与locales/*.ts数据文件的完整性。后两者的核对方式是src/content/book/{locale}/文件数与根目录英文一致29 个、locales/{locale}.ts通过LocaleData类型检查并在index.ts中注册否则会被静默回退英文。把脚本校验、类型校验与/book/{locale}页面走查三件事都做完才算一次完整的新语言接入。七、推荐工作流与翻译质量准则Skill 末尾给出两条对工作方式与质量的约束均值得保留为执行纪律。推荐工作流Recommended Workflow复制src/content/book/*.mdx到src/content/book/{locale}/把messages/en.json的book段复制到messages/{locale}.json并且分多个 agentic 会话分批翻译而不是一次性完成——原文档的理由是单会话 token 上限可能装不下全部词条逐文件编辑完成英文到目标语言的翻译全程保持 JSX 组件、代码块与 Markdown 语法原样。质量准则Quality Guidelines一致性全书使用统一术语例如 prompt 必须始终译成同一个词技术词保留AI、ChatGPT、API等可以保留英文原文文化适配示例内容在合适处替换为目标受众更熟悉的场景自然优先优先保证译文读起来自然而非逐字直译。结合仓库现状这几条准则的实际压力点在于book.chapterDescriptions与demoExamples中的示例句数量最大、最容易在长篇翻译中发生术语漂移而locales/{locale}.ts里 25 个数据域的重复短语如步骤名、按钮文案又天然要求跨文件一致。以en/tr/az为参照稿、逐数据域而非逐文件翻译是降低漂移的最直接做法。八、小结三层产物与三道校验把本文与仓库源码对齐后的完整接入清单如下可作为验收 checklist层产物位置校验手段1章节 MDX29 个文件src/content/book/{locale}/与英文根目录文件逐一对应JSX/代码块原样2界面与章节词条messages/{locale}.json的book段node scripts/check-translations.js无 missing/extra3交互演示数据25 字段src/components/book/elements/locales/{locale}.tsLocaleData类型检查 在 index.ts 三处注册第三层的注册遗漏是唯一会被getLocaleData静默回退英文掩盖的环节因此人工走查/book页面在新语言下各演示组件温度、token 预测、构建器、链式演示、练习题的显示语言是不可省略的最后一步。完成上述三层翻译与三道校验后新语言即与仓库现有 16 种语言子目录同等可用。【免费下载链接】prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.项目地址: https://gitcode.com/GitHub_Trending/aw/prompts.chat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考