2026/10/30 2:18:22

如何为 Better DeepSeek 贡献新语言:轻量级 i18n 本地化系统完整指南

如何为 Better DeepSeek 贡献新语言:轻量级 i18n 本地化系统完整指南 【免费下载链接】better-deepseekA powerful browser extension that supercharges DeepSeek Chat with custom tooling, persistent memory, and seamless project scaffolding. Generate and download files, run Python in-browser, create PowerPoint and Excel documents, build multi-file projects as ZIP archives, and manage custom skills and characters.项目地址https://gitcode.com/gh_mirrors/be/better-deepseek点击查看免费下载Better DeepSeek是一款为 DeepSeek Chat 注入超能力的浏览器扩展内置了一套轻量级 i18n 本地化系统所有界面文案存放在src/locales/下的 JSON 文件中组件通过一个t()函数按键路径取词缺失翻译自动回退英文。如果你想为它贡献新语言德语、日语、韩语……只需要翻译一个 JSON 文件——不需要写任何框架代码。本文将带你从零走通新增语言的完整流程。一、i18n 系统是如何工作的30 秒读懂核心设计Better DeepSeek 没有引入任何重型国际化库整个系统只由两部分构成组成位置作用语言数据src/locales/每个语言一个 JSON 文件en.json、zh-cn.json、tr.json、ru.json、fa.json管理器src/lib/i18n.svelte.js基于 Svelte 5 响应式状态的I18nManager对外导出t()函数t()的取词逻辑见 i18n.svelte.js 中的t(path, vars)点路径解析t(settings.save)会逐层走进 JSON 的messages.settings.save英文回退当前语言缺这个 key 时自动去第一个语言en取值保底兜底哪里都没有就显示 key 路径本身保证界面永不空白模板变量插值值里的{{version}}、{{count}}、{{date}}等占位符会在运行时替换成动态内容。语言文件在构建时被自动收集import.meta.glob(../locales/*.json)见 i18n.svelte.js——这意味着你只需在src/locales/下放好新文件它就会自动出现在设置面板的语言下拉框和自动检测逻辑中无需改动任何注册代码。二、新增语言完整流程6 步贡献指南1. 环境准备克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/be/better-deepseek cd better-deepseek npm install2. 创建语言文件把 src/locales/en.json 复制为src/locales/{code}.json其中{code}使用 ISO 639-1 语言代码如de、fr、ja。注意带地区变体的写法例如简体中文是zh-cn参见现成的 src/locales/zh-cn.json。文件顶层结构保持两段式{ updatedAt: 2026-05-20T00:00:00Z, messages: { common: { save: Speichern, cancel: Abbrechen } } }其中updatedAt请填当天日期ISO 8601 格式它是远程更新机制判断新旧版本的关键字段别忘改。3. 翻译规则只翻值不翻键这是整个贡献流程中最重要的一条⚠️键名keys永远不翻译messages内的嵌套结构必须与en.json完全一致模板变量如{{version}}连同花括号原样保留但可以在句子里调整位置以符合本语言语序——例如 en.json 中version: v{{version}}部分值包含strong等行内 HTML界面用{html ...}渲染必须原样保留复数不用复杂规则而是拆成不同 key如filesUploaded与filesUploadedShort翻译时按各自 key 处理即可。以简体中文文件为例common区块的翻译对照如下zh-cn.jsonKeyenzh-cncommon.saveSave保存common.cancelCancel取消common.workingWorking...处理中…4. 在语言文件中注册语言名称所有语言文件都有messages.language区块里面存每种语言的本族名。你在每个语言文件里都要为新语言加一行例如在en.json中见 en.jsonlanguage: { en: English, tr: Türkçe, de: Deutsch }而新语言文件de.json里则用德语写其他语言的名字en: Englisch。这一步完成后新语言才会显示在设置面板的下拉选择器中渲染逻辑见 SettingsPanel.svelte使用i18n.getNativeName(code)展示本族名。5. 构建并测试npm run build在浏览器中加载dist-chrome目录下的未打包扩展打开设置面板的语言区域切换到你的新语言。所有走了t()的界面字符串都应显示为你的翻译。6. 运行自动校验提交翻译提交前务必运行内置的本地化校验脚本npm run check-locales该脚本scripts/check-locales.js会递归对比所有语言文件与基准文件en.json输出彩色报告Missing Keys红色en.json有而你文件里没有的键——必须补译Extra Keys青色你文件里有但en.json已删除的过时键——可以安全清理。全部通过后提交 PR包含你的新语言文件 更新后的src/locales/en.json。如果不熟悉 Git/PR也可以把翻译好的 JSON 文件附在 Issue 中并注明语言名称维护者会代为处理。三、翻译时最容易踩的 4 个坑结合 LOCALIZATION.md 官方指南整理成速查表常见错误正确做法翻译了键名save改成了保存只改值key 是代码定位翻译的标识符漏掉模板变量{{version}}被删变量连同花括号原样保留可调整位置丢掉了值里的 HTML 标签strong等标签必须保留界面依赖它们渲染格式漏改updatedAt日期每次修改都更新为当天否则远程更新不会拉取到你的翻译另外注意并非所有字符串都需要翻译——直接发给 AI 模型的内容如自动指令是刻意保持英文的遇到这类 key 保留原样即可。四、远程语言更新翻译合并后用户秒级生效Better DeepSeek 最贴心的设计之一翻译更新不需要用户升级扩展版本。机制如下扩展启动时以及用户在设置面板点击Check for Language Updates按钮时SettingsPanel.svelte 中checkLanguageUpdates()会向后台发送BDS_UPDATE_LANGUAGES消息后台会拉取仓库main分支上最新的语言文件后台 src/background/index.js 中的handleLanguageUpdate()逐个对比远程与内置文件的updatedAt时间戳远程更新才替换并写入chrome.storage.local持久化重启浏览器也不丢失前端启动时通过i18n.loadUpdatedLocales()把更新热加载进内存storage.js设置面板里的Reset to Factory Languages按钮可一键还原为内置翻译调用 i18n.svelte.js 的resetLocales()。所以对译者来说PR 一旦合并进main用户点一下检查语言更新就能用上你的新翻译——这就是为什么updatedAt字段如此关键。五、语言是怎么被选中的同步模式与手动模式了解用户端的行为有助于你理解自己翻译的展示效果。设置面板中的Sync extension language with browsersettings.syncLocale开关控制两种模式自动同步默认忽略手动选择每次页面加载按优先级自动检测——DeepSeek 的NEXT_LOCALEcookie跟随 DeepSeek 网页端的语言设置浏览器的navigator.language回退到第一个可用语言English。手动模式关闭同步后下拉框中选中的语言会持久化到chrome.storage.local之后每次加载都沿用。自动检测逻辑运行在 i18n.svelte.js 的init()中扩展启动时触发其他标签页设置变更时也会同步。你的语言文件放进src/locales/后自动检测与手动选择器都会自动包含它无需额外适配。六、贡献前自检清单 ✅提交 PR 前逐条确认文件名使用正确的 ISO 639-1 代码位于 src/locales/updatedAt已更新为当天日期结构、键名与 src/locales/en.json 完全一致模板变量{{...}}与 HTML 标签全部保留所有语言文件的messages.language都注册了新语言的本族名npm run check-locales通过无 Missing Keys 完整文档参考LOCALIZATION.md。 语言文件位置src/locales/当前收录 en、zh-cn、tr、ru、fa 共 5 种语言单文件约 1500 行。 校验工具源码scripts/check-locales.js i18n 核心实现src/lib/i18n.svelte.js翻译一个 JSON 文件就能让全世界使用者在自己的语言里打开 Better DeepSeek。上手门槛极低欢迎贡献你的第一种语言赞分享【免费下载链接】better-deepseekA powerful browser extension that supercharges DeepSeek Chat with custom tooling, persistent memory, and seamless project scaffolding. Generate and download files, run Python in-browser, create PowerPoint and Excel documents, build multi-file projects as ZIP archives, and manage custom skills and characters.项目地址https://gitcode.com/gh_mirrors/be/better-deepseek点击查看免费下载相关推荐DiffRhythm技术探索基于潜在扩散模型的端到端全长歌曲生成实践指南DiffRhythm技术探索基于潜在扩散模型的端到端全长歌曲生成实践指南 技术架构解析 DiffRhythm中文名谛韵是一款基于潜在扩散模型Laten人工智能深度学习媒体生成音乐生成音频模型推理服务预训练专业虚拟化管理指南使用virt-manager高效掌控KVM、Xen和LXC虚拟机专业虚拟化管理指南使用virt manager高效掌控KVM、Xen和LXC虚拟机 virt manager是一款基于libvirt的图形化虚拟化管理工具为5分钟掌握B站视频下载bilidown终极使用指南5分钟掌握B站视频下载bilidown终极使用指南 还在为无法离线观看B站优质内容而烦恼吗bilidown作为一款专业的哔哩哔哩视频下载工具让你轻松保存任桌面应用后端上一篇为什么Passkey登录必须HTTPSopenGym的WebAuthn约束完整理解指南下一篇TypeUI generate命令全流程实操从交互式问答到生成专属设计系统附--dry-run安全模式用法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考