简单 AI 翻译(仿浏览器沉浸式翻译插件),自带 ai 引擎,也支持直接调用思源配置里的 ai,可自定义提示词。
三大功能
- 自带 ai 引擎,直接使用,无需任何配置,完全免费,适合小白
- 通过思源 ai 配置,配置完后,参数
aiEngine
设置为 siyuan 即可,适合有 ai api 的用户 - 选中块,仅对选中的块进行翻译,适合临时对部分文本翻译
shift + 点击或按 F5 取消翻译。
两大模式
- 普通模式,适用于小白用户,满足基本的翻译需求,每个块发送一次请求,响应速度更快。(但一般 api 有速率和单位时间 tokens 限制,建议选择少量段落后多次翻译)
- 专家模式,适用于资深玩家,对翻译效果有更高要求,一次性发送多个块数据,模型会根据上下文综合翻译,可能翻译效果更好,但心理等待时间可能更久。(同样,api 一般有超时和单位时间 tokens 限制,建议选择部分多次翻译,如果是 siyuan 引擎,需要在设置/ai/超时时间中设置一个较大的超时时间)
如果你没理解,一点没有影响,这仅仅是个概念,对正常使用没有任何影响。但如果你是高级玩家,可以通过查看源码了解这两大模式的实际区别。
使用演示
参数配置
更多参数配置如下
注意,这里的提示词仅供参考,由于提示词一直在不断优化,后续修改了提示词不再更新帖子,请以源码为准!
// default 默认引擎,即本代码自带引擎,完全免费,无需配置 // siyuan 思源ai引擎,即思源ai配置中设定的ai引擎 let aiEngine = 'default'; // 翻译成什么语言 // zh-cn 简体中文 zh-hk 港式繁体 zh-tw 台湾繁体 // us-en 英语 ja-jp 日语 ko-kr 韩语 ru-ru 俄语 de-de 德语 let transTo = 'zh-cn'; // 是否开启专家模式 // 专家模式将会把所有块一起发送给ai翻译,结果更准确,性能更好,但心理等待时间更久 let expertMode = false; // ai提示词 const aiPromptCommon = ` 你是一名专业的翻译人员,母语为 {{to}}。你的任务是将输入文本翻译成标准的、地道的 {{to}}。但在执行前,请先判断输入文本的语言。 翻译规则: 1. 如果文本中包含{{to}}的句子或段落,仅{{to}}这部分文本原样输出(包括但不限于标点符号、空白符等),不要进行任何翻译、润色或改写。其他非{{to}}部分,请翻译成自然流畅、符合使用习惯的 {{to}}。 2. 再次解释说明,多种语言混合的段落,不要仅部分翻译,也不要不同的语言分开翻译,而是把所有文本看做一个整体,仅其中包含{{to}}的那部分或者说那些句子原样保留,剩余的非{{to}}要继续翻译。 3. 返回的译文必须严格保留原文本的段落数量、空格(包括行首空格)、空白符、缩进、换行符、标点符号等格式,必须与原文格式完全保持一致,不得更改。 4. 如果文本包含 HTML 标签,请合理保留标签结构并保证语义通顺。 5. 对于不应翻译的内容(如专有名词、代码等),请保留原内容不翻译。 输出说明: 1. 不要输出任何说明,解释或注释等,例如“翻译如下:”,“根据规则1,我应当xxxx”,“此处用xxxx翻译更合适”,“(注:xxx)”,“[注:xxx]”等这些解释不允许出现。 2. 不要输出JSON格式,直接返回译文文本即可,比如{"id":"译文"}错误,直接返回译文文本即可。 3. 保留所有原始格式:包括行首空格、换行、标点符号等。若某行原文以空格开头,请确保译文也以相同数量的空格开头;若原文行首无空格,则译文也不得添加空格。不得对空白符进行任何改动。比如“ hello word!”,输出“ 你好世界!”,正确,而输出“你好世界!”,错误。 4. 换行符的格式必须与原文一致,不得自行添加或减少换行,标点符号和空白符也要与原文一致。 5. 不要参考历史对话内容,仅严格按照上述规则执行。 现在,请翻译以下内容: {{text}} `; // 专家模式 // 专家模式将会把所有块一起发送给ai翻译,结果更准确,性能更好,但心理等待时间更久 const aiPromptExpert = ` 你是一名专业的翻译人员,母语为 {{to}}。你将接收一个 JSON 格式的输入,任务是将其中的值翻译成自然流畅、符合 {{to}} 语言表达习惯的内容。 **输入格式说明:** JSON 结构如下所示: {"id1": "文本内容1", "id2": "文本内容2", ...} - 每个键(如 "id1")是文本 ID,请严格保留,不做任何更改; - 每个值是需要翻译的文本内容,只翻译 **值部分**; - 输入内容可能是段落、句子、HTML结构等,请根据内容类型合理处理。 **翻译规则如下:** 1. **语言检测优先级最高**:请在翻译前判断每段文本中是否包含 {{to}} 的句子或段落。如果文本中包含{{to}}的句子或段落,仅{{to}}这部分文本原样输出(包括但不限于标点符号、空白符等),不要进行任何翻译、润色或改写。其他非{{to}}部分,请翻译成自然、流畅、地道的 {{to}},符合目标语言表达习惯。 2. 再次解释说明,多种语言混合的段落,不要仅部分翻译,也不要不同的语言分开翻译,而是把所有文本看做一个整体,仅其中包含{{to}}的那部分或者说那些句子原样保留,剩余的非{{to}}要继续翻译。 3. 保持原有的段落数量、空格(包括行首空格)、空白符、缩进、换行符、标点符号等格式完全一致。再次强调,必须与原文格式完全保持一致,不得更改。 4. 正确处理 HTML 标签:翻译文本内容的同时,合理保留并安置 HTML 标签,使译文语义通顺、结构正确。 5. **绝对不要翻译任何已为 {{to}} 的文本内容**,无论是什么类型的文本——这项规则必须严格执行,任何违背都会导致输出错误。 6. 不要翻译专有名词、代码或任何明确不需要翻译的内容。 **输出格式说明:** 1. 直接输出 JSON 结果,不要输出任何说明,解释或注释等,例如“翻译如下:”,“根据规则1,我应当xxxx”,“此处用xxxx翻译更合适”等内容。 2. 格式要与输入格式严格保持一致。换行符的格式也必须与原文一致,不得自行添加或减少换行,标点符号和空白符也要与原文一致。 3. 输出必须是纯粹的 JSON 文本,**不要添加任何字符在JSON的首尾,比如 {"id":"文本"}✅正确,\`\`\`json\n{"id":"文本"}\n\`\`\`❌错误**。 4. 输出必须为标准合法的 JSON 格式(键值使用双引号,必要时转义特殊字符)。 **上下文说明:** 1. 该 JSON 中的内容可能来自一篇有上下文有关联的文章,可参考上下文以提高翻译准确度,请综合判断。 2. 不要参考历史对话内容,仅严格按照上述说明执行。 现在,请翻译以下内容: {{text}} `;
使用技巧
-
英翻中推荐 deepseek 或 chatgpt,信达雅方面感觉更给力。如果想白嫖可参考下面免费大模型方案。
-
诗歌等上下文关联紧密的,最好一次性请求,这样翻译效果最好,参见参数配置中的专家模式。
-
写到一个段落中可一次性发送,如果不方便写一个段落且要求准确度高的建议直接用专家模式。
-
自定义 prompt 可以参考上述参数配置。
-
保存译文后,如果想把译文和原文分开两个段落,只需要在译文的开头回车即可。
-
注意,停止翻译,当请求已响应,正在下载中时无法停止,但结果不会输出。
-
shift + 点击或按 F5 取消翻译。
-
其他快捷键
免费大模型
推荐 硅基流动大模型列表
或 https://openrouter.ai/models (国内网络有时不稳定)
更多免费大模型参见 https://getquicker.net/Sharedaction?code=f1743555-674d-4729-2552-08dd3978d697&fromMyShare=true
注意,这是早期汇总的,可能某些大模型已经失效。
国外大模型(chatgpt 等)推荐 V3API (收费,但性价比高)
感谢作者
代码
点这里 👇 打赏后可见!
(为什么要打赏可见,因为我想统计使用人数,感觉这个方法最方便 😄)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于