
桌面应用【免费下载链接】helium-chromiumPrivate, fast, and honest web browser项目地址https://gitcode.com/GitHub_Trending/he/helium-chromium点击查看免费下载导读Helium 是一个基于 Chromium 的浏览器项目其 UI 界面字符串的国际化i18n工作流由 i18n/prompt.md 这份翻译提示词文档驱动——它不是给人看的说明而是喂给 LLM 的翻译指令模板。本篇文章将逐条拆解这份 prompt 的 11 条翻译规则与输入/输出格式契约并结合仓库中真实的源码devutils/i18n_generate.py、devutils/i18n_translate.py、数据文件i18n/source.gen.json、i18n/languages.json与 70 余个语言翻译文件帮助你完整理解 Helium 的 UI 字符串翻译体系并掌握可直接复用的浏览器类产品翻译提示词工程方法。一、prompt 在 Helium 翻译流水线中的位置要理解这份 prompt 的价值先要看它在整个 i18n 管线中扮演什么角色。Helium 的翻译流程是从补丁提取 → LLM 翻译 → 回写 Chromium三段式提取generate./devutils/i18n.py generate会克隆三个平台仓库windows/macos/linux与 onboarding 仓库读取所有patches/series中触碰到.grd/.grdp文件的补丁用 unidiff 解析 diff hunk把新增或改动的 GRITmessage单元抽取为 JSON 条目输出到 i18n/source.gen.json。每条记录包含name如IDS_SETTINGS_PERFORMANCE_*、source来自哪个 GRD 文件、context用途说明与message英文原文。实现细节见 devutils/i18n_generate.py。翻译translate./devutils/i18n.py translate调用i18n_translate.py加载 i18n/prompt.md 作为 system prompt把语言名与语言代码替换进{{language_name}}/{{language_code}}占位符devutils/i18n_translate.py再将待翻译字符串的 JSON 数组作为 user 消息发送给 LLMOpenAI 兼容的 completions API或通过--cmd指定的命令行后端。模型返回纯 JSON 后经解析、校验合并写回i18n/translations/lang.json。应用applyutils/i18n_apply.py将翻译结果按 fingerprint 写入 Chromium 的 XTB 文件utils/i18n_apply.py供浏览器编译时使用。也就是说这份 prompt 是翻译质量的直接决定者LLM 的每一句译文都严格受它约束。二、输入与输出契约模型需要遵守的数据格式输入JSON 数组模型收到的用户消息是一个 JSON 数组每个对象包含三个字段name字符串标识符如IDS_IMPORTED_FROM_BOOKMARK_FOLDER不可翻译、不可改动用于回写时与源文件匹配context该字符串在界面中的使用位置与用途描述指导选词与语气message需要翻译的英文源字符串。需要注意两点某些条目带有translate: false标记它们是已经翻译好的上下文示例用于帮助模型对齐既有风格与术语不要翻译。这对应i18n_translate.py中build_payload的逻辑——它会把待翻译字符串前后各 2 条邻近条目一起打包进 payload已翻译的邻近条目就标记为translate: false充当语境参考devutils/i18n_translate.py。同一个name可能多次出现携带不同的message平台或上下文变体此时要逐条独立翻译不能因为名字相同就复用或跳过。输出严格顺序的 JSON 数组模型必须只输出一个 JSON 数组且保持与输入相同的顺序每个待翻译条目对应一个对象name原字符串标识符原样保留message默认中性形式的译文feminine/masculine仅当目标语言有语法性别、且译文在面向女性/男性用户时会发生变化时才提供与message相同则省略。文档给出了法语例子翻译 Imported from X 时message为默认阳性形式Importé depuis Xfeminine为Importée depuis X过去分词随性别变化。像 Add search engine 这类无性别变化的按钮文案两个字段都要省略。仓库里的法语翻译文件正好印证了这一约定例如 i18n/translations/fr.json 中{ name: IDS_IMPORTED_FROM_BOOKMARK_FOLDER, source: Imported from ph name\BROWSER_NAME\$1exHelium/ex/ph, message: Importé depuis ph name\BROWSER_NAME\$1exHelium/ex/ph, feminine: Importée depuis ph name\BROWSER_NAME\$1exHelium/ex/ph }输出时的硬性约束还有一条译文中的英文双引号必须转义为\或替换为符合目标语言习惯的引号如法语的«»、德语的„、日语的「」否则未转义的双引号会破坏 JSON。此外模型不得输出任何额外文字、解释或 Markdown 格式。i18n_translate.py在解析侧也有兜底fixup_json会剥离 json 代码围栏并自动修复未转义的双引号devutils/i18n_translate.pyparse_response则校验字段白名单仅允许name/message/feminine/masculine、缺失条目和顺序devutils/i18n_translate.py。翻译文件的落盘格式模型输出经save_translations合并后最终写入i18n/translations/lang.json的条目结构与 prompt 的输出稍有不同——多了source字段英文原文用于内容匹配。匹配按namesource内容而非数组位置进行i18n/README.md且source.gen.json中字符串一旦变化旧译文就会被find_untranslated判定为过时并触发重新翻译devutils/i18n_translate.py。三、十一条翻译规则逐条拆解1. 占位符ph标签必须原样保留源字符串中形如ph nameBROWSER_NAME$1exHelium/ex/ph的占位符用于在运行时注入动态值这里是浏览器名称。规则要求不翻译、不重排、不修改ph标签内的任何内容译文必须完整保留这些标签可整体移动其位置但不能改动内部。例如 i18n/source.gen.json 中的IDS_IMPORTED_FROM_BOOKMARK_FOLDERImported from ph name\BROWSER_NAME\$1exHelium/ex/ph。俄语翻译 i18n/translations/ru.json 将其译为Импортировано из ph name\BROWSER_NAME\$1exHelium/ex/ph——标签被完整搬到译文中。这套机制在i18n_apply.py中还有对应的反向转换把 GRD 风格的ph nameX...内容.../ph正则替换为 XTB 格式的ph nameX /utils/i18n_apply.py因此模型侧保留的标签名必须与源完全一致。2. 品牌名永不翻译Helium 是产品名任何语言都不得翻译。其他品牌名如 uBlock Origin同样保持原样。而非品牌的功能名与布局名如内存节省模式、标签页、书签等在目标语言有自然说法时应翻译。仓库中大量字符串都是这个模式比如法语文件把 Helium services 译为 Services Helium——Helium 保留services 本地化。3. 语域Register礼貌、自然遵循目标语言的敬称惯例要求使用礼貌、自然的 UI 语域既不俚语化也不法律文书化。规则明确列出各语言的第二人称选择区分敬称/非敬称的语言用敬称法语用 vous德语用 Sie俄语用 вы目标区域习惯非正式口吻的如西班牙语 tú则用非正式形式不区分正式程度的语言用中性措辞。法语翻译中大量 vous 形式如 i18n/translations/fr.json 的 Vos onglets inactifs redeviennent automatiquement actifs lorsque vous y retournez.就是这条规则的直接体现。4. 简洁长度与原文匹配不增删信息按钮标签与菜单项要简洁描述性文案可以稍长但不得添加原文没有的信息。这是忠实翻译在 UI 场景的落地界面文案的长度直接影响布局与可用性。5. 语境与大小写用context字段指导选词context字段描述了字符串的使用位置如 Title for the dialog shown when Full Disk Access is needed...模型应据此选择词义与语气。同时要保留有意义的 UI 大小写风格——Title Case、全大写、句子式标签——并转换为目标语言最自然的对应惯例很多非拉丁字母语言并无英文式大小写需按本族习惯处理。6. 技术术语保持不译或使用浏览器既有标准译法URL、HTTPS、DNS 等技术术语除非目标语言有成熟的浏览器 UI 等价词否则保持原文。通用计算词汇bookmarks、tabs、downloads应使用主流浏览器在该语言中确立的标准译法。这条规则加上第 10 条一起保证了 Helium 的术语与 Chrome/Chromium 生态保持一致避免同词不同译造成的割裂感。7. 键盘快捷键键名与符号按目标语言/平台惯例保留Ctrl、Shift、Tab 等键名及符号如、→在绝大多数语言中保持英文/拉丁字母形式无需本地化。这与 Chromium 的键位展示机制一致键名改动会导致快捷键提示失效。8. 语言正字法俄语要用 ё规则特别点名俄语ru该写 ё 的地方必须写 ё用 е 替代会被视为不正确或产生歧义。例如 i18n/translations/ru.json 中的 выгружает 系列译文对 ё/е 的处理即遵循此规则。这是本地化质量而非翻译正确性的层面但直接影响母语者的观感。9. 意图与语法角色命令像命令设置像标签帮助像描述命令与按钮要读起来像动作Copy、Open、Reset设置项要读起来像标签或开关Allow automatic updates帮助文本要读起来像描述。并且要使用目标语言正常的命令形式——例如俄语 UI 命令常用完成体动词Скопировать完成体而非 Копировать未完成体。这要求译者不仅懂语言还要懂该语言 UI 的惯例。10. 浏览器风格贴合 Chromium/Chrome 既有译法Helium 是 Chromium 系浏览器常见浏览器概念的术语与措辞应参考目标语言 Chromium/Chrome 风格的既有翻译。这一条把第 6 条标准译法落实到具体参照系是保证 Helium 70 多种语言i18n/languages.json 列出 74 个 locale整体一致性的关键。11. ICU 复数消息语法保留只翻括号内文本这是最技术性、也最容易翻错的一条。部分消息使用 ICU MessageFormat 复数语法例如{MINUTES, plural, 1 {minute} other {minutes}}规则要求把以下内容当作语法保留参数名MINUTES、关键字plural、精确数字选择器0、1、复数类别选择器zero、one、two、few、many、other、offset:n、#字符及花括号。只翻译每个选择器花括号内的人类可读文本。#表示插入按区域格式化的数量必须原样保留且原文没有时不得擅自添加。不要假设所有语言只有英语式的单复数两态。具体做法是保留源中的所有精确数字分支如0、1始终保留other使用目标语言 CLDR 基数复数类别——源中缺失的类别要补上源中属于英语但目标语言不用的类别如one、few、many要移除复数类别归属查询 Unicode CLDR Language Plural Rules chart精确数字选择器优先于语言类别匹配1只指数字 1而one类别还可能覆盖 21、31 等。文档用俄语给出完整示例源中的{MINUTES, plural, 1 {minute} other {minutes}}应译为{MINUTES, plural, 1 {минута} one {минута} few {минуты} many {минут} other {минуты}}其中1处理数字 1one处理 21、31 等few处理 2–4、22–24 等many处理 0、5–20、25–30 等。注意俄语示例只是机制演示不是照抄模板——具体类别与措辞必须按{{language_code}}对应的语言而定。最后还要保留消息意图如果原文省略数字因为数字单独显示在 UI 上译文也不要硬把数字塞回去。source.gen.json中有不少真实 ICU 复数消息例如崩溃报告对话框的{COUNT, plural, 1 {Would you like to send a crash report?} other {Would you like to send # crash reports?}}与扩展调试提示的{NUM_EXTENSIONS, plural, 1 {This extension is debugging your browser:} other {These extensions are debugging your browser:}}——前者是英文 only1/other两分支译成俄语等语言时必须按 CLDR 补出few/many等类别。四、从 prompt 到仓库数据一条规则的具体落地以规则 1占位符与规则 11ICU 复数为例串联起整个仓库提取端i18n_generate.py从补丁的 GRD/GRDP diff 中抽取message单元name/desc/meaning取自 XML 属性context由 desc 经name_substitution_utils.replace_text处理devutils/i18n_generate.pymessage 原文保留全部ph标签与 ICU 语法。翻译端prompt 作为 system 消息约束 LLM 遵守上述 11 条translate子命令通过--language fr de指定目标语言缺省翻译 i18n/languages.json 中全部 74 个 locale--from-file可离线导入人工/第三方翻译--cmd或环境变量I18N_TRANSLATE_CMD可替换 LLM 后端devutils/i18n_translate.py。落盘端校验通过后写入i18n/translations/lang.jsonfeminine/masculine按模型输出决定是否保留source字段记录原文供内容匹配。应用端utils/i18n_apply.py依据namesource找到 GRD/GRDP 的父 GRD 文件find_parent_grd通过part file...反查onboarding 字符串固定挂在generated_resources.grd见 utils/i18n_apply.py把ph转成 XTB 空标签形式后写入对应语言的.xtb最终参与浏览器编译。五、对贡献者与翻译审校者的实践要点结合 i18n/README.md 的流程说明这份 prompt 对应的协作规范如下不要直接提交新语言翻译的 PR项目按批次批量运行翻译README 中明确说明。但修正既有字符串错误的 PR 是欢迎的。审校者关注点正是 prompt 核心规则的镜像相对source的准确性、ph占位符的完整保留、语域合适度、品牌名未翻译。语言所有者机制母语者可在 i18n/owners.yml 中申请成为某语言文件的审校负责人配合批次机制保证长期质量。开发侧新增字符串后用./devutils/i18n.py generate重新生成 i18n/source.gen.json但不要自行生成机器翻译交给维护者批量处理翻译应用则用utils/i18n_apply.py两者均可用-h查看完整参数。六、可复用的翻译提示词工程要点如果要在自己的浏览器类产品中复刻这套方案prompt 的设计可总结为以下可迁移原则把输入/输出格式写成机器可校验的契约输入字段定义name/context/message、输出字段定义name/message/feminine/masculine、顺序要求、引号转义规则、禁出额外文本——全部写成明确指令配合解析侧校验字段白名单 缺失检测 顺序校验实现闭环。把术语一致性拆成多条可执行规则品牌名禁译、技术术语保留、通用词用主流浏览器标准译法、风格对齐 Chromium——每一条都对应一个可检查点。把复数单独成条并给出示例ICU MessageFormat 最容易翻坏规则需要明确哪些是语法、哪些是文本并提供俄语这类复杂复数语言的最小示例同时强调示例仅为机制演示。把语境显式交给模型context字段 邻近已翻译条目translate: false双重语境显著提升选词准确率。把质量红线前置语域敬称惯例、简洁度不增删信息、意图命令/设置/描述的语法角色都在 prompt 里一次性约束而非事后人工返工。结语i18n/prompt.md 是一份高度工程化的 LLM 翻译指令它把品牌保留、占位符保护、语域选择、术语对齐、ICU 复数、性别变体、JSON 契约等十余个维度压缩进一份模板再由 devutils/i18n_translate.py 的解析与校验逻辑兜底。理解这份文档不仅等于理解了 Helium 全部 74 个语言翻译文件i18n/translations/的生产方式也等于掌握了一套可复用的浏览器 UI 翻译提示词范本。赞分享桌面应用【免费下载链接】helium-chromiumPrivate, fast, and honest web browser项目地址https://gitcode.com/GitHub_Trending/he/helium-chromium点击查看免费下载相关推荐AutoClip 国际化i18n体系全解析多语言文档结构、CI 同步检查与浏览器翻译兼容AutoClip 国际化i18n体系全解析多语言文档结构、CI 同步检查与浏览器翻译兼容 AutoClip 是一个基于 AI 的智能视频切片与高光提取系统人工智能AI 应用大模型音视频短视频后端前端桌面应用OpenChamber 多语言 UI 国际化i18n开发指南locale-ui-patterns 规范与 /lib/i18n 实现解析OpenChamber 多语言 UI 国际化i18n开发指南locale ui patterns 规范与 /lib/i18n 实现解析 导读 本文基于AI Agent人工智能代码智能体交互助手wp-calypso 新版 Dashboard 国际化i18n实践指南wordpress/i18n 翻译规范与 CSS 逻辑属性wp calypso 新版 Dashboard 国际化i18n实践指南wordpress/i18n 翻译规范与 CSS 逻辑属性 本文聚焦 wp cal前端CMS上一篇airi 项目实战VueUse useFps 响应式帧率FPS监控与性能可视化指南下一篇Paperless-ngx 文档协作功能多人编辑与冲突解决创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考