# Python 程序 : 在 golendict 中翻译句子,标注词组,语法纠错

**URL:** <https://forum.freemdict.com/t/topic/34717>\
**Category:** 软件经验交流展望\
**Tags:** anki, ai, 翻译, 英语, 软件\
**Created:** [2024 年12 月 10 日 09:28 UTC](https://forum.freemdict.com/t/topic/34717 "2024-12-10T09:28:52Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2024 年12 月 10 日 09:28 UTC](https://forum.freemdict.com/t/topic/34717/1 "2024-12-10T09:28:52Z")

</div>

**简介:**

本工具利用 GoldenDict 访问外部网站的功能，让您可以在句子中翻译和高亮生难词汇，并可选择将其添加到 Anki 记忆卡片中。

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/2/5/25b3b3fe564b2f3b29497c1e794580e8ddac4f02.png)

**用法:**

1. **查句:** 使用 GoldenDict 查询句子时，本工具会处理输出结果。
2. **高亮:** 在 GoldenDict 中显示的 HTML 页面会用 **粗体** 高亮生难词汇。
3. **语境释义:** 将鼠标悬停在 **粗体** 词汇上，即可显示其在当前句子中的释义。
4. **Anki 集成:** 点击 **粗体** 词汇，即可将其添加到指定的 Anki 牌组。记忆卡片将包含该词汇、其语境释义和原句。
5. **自动发音** :集成微软TTS自动发音

**GoldenDict 辅助查词工具安装指南**

> **一、 准备工作**
> 
> 1. **Anki 与 AnkiConnect 插件:**
> - 确保 Anki 已经在后台运行。
> - 安装 AnkiConnect 插件 (插件 ID: `2055492159`)。

> **二、 获取 API 密钥**
> 
> 您需要至少一个 API 密钥来使用翻译功能。以下提供两种选择：
> 
> 1. **Gemini API :**
> - 访问 [Google AI Studio](https://ai.google.dev/) 申请 Gemini API 密钥。
> 
> 2. **第三方 API (例如: 硅基流动):**
> - 访问[硅基流动官网](https://siliconflow.cn/) 或其他兼容 OpenAI 接口的平台注册并申请 API 密钥。

> **三、 配置 GoldenDict**
> 
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/0/d/0d315b1a3bd54ee4377c024f552401fe2e7c7d1d.png)
> 
> 1. **打开 GoldenDict 的程序设置:**
> 
> 2. **添加新的网址:**
> 
> 3. **保存设置:** 点击 “确定” 保存设置。

> **四、 运行**  
> 双击app.exe运行,保留这个进程在后台.

> **五、查询一个句子,点开右上角的齿轮,输入相关参数**  
> 如果是硅基流动 ,你的配置应该长这样:
> 
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/c/8/c8e18e8ecb810b0e09c4b648accc267774a70a2d.png)  
> 如果是gemini,你的配置应该长这样:  
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/1/5/1571eab2120183788e8655be29e13dc89f6897bb.png)

**更新:**

1.修复anki template context中有`"` 导致无法正常显示的问题

> **anki front template**
>
> ```auto
> <script>
> // 获取字段内容
> //var context = "{{Context}}";
> var text = "{{Text}}";
> var modifiedContextElement = document.getElementById("modifiedContext");
> // 创建正则表达式，忽略大小写，全局匹配
> var re = new RegExp(text, 'ig');
> // 将匹配到的内容替换成加粗的HTML标签
> var modifiedContext = modifiedContextElement.innerHTML.replaceAll(re, "<b>$&</b>");
> // 将修改后的内容设置为元素的 textContent
> modifiedContextElement.innerHTML = modifiedContext;
> 
> </script>
> 
> ```

2.新增一个实用的功能, 随手写英语,然后CTRL+C 检查语法错误…

- 可选项1.goldendict 配置新增网站 `http://127.0.0.1:5000/grammar_check?text=%GDWORD%`
- 可选项2.不用新配置网站,只需要在你要纠错的句子前面加上`~`. 比如 `~I have a apple`  
 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/6/3/63e63cdc5d68fe74bc0b56ca186cefd8d0f03be1.png)

1. 在设置内指定你想翻译的语言(没法做下拉框,goldendict渲染有问题会闪烁.)
2. 中英互译模式,打开之后无视 destination\_language选项, 输入英文则会翻译为中文,输入中文翻译为英文

**下载地址:**

[翻译小程序\_编译.zip.001](https://forum.freemdict.com/uploads/short-url/jTZaUwhRZvMdyZph43DXqtKKcEX.001) (19 MB)  
[翻译小程序\_编译.zip.002](https://forum.freemdict.com/uploads/short-url/vnfLACpRPABWam1iLPdosDpLkGy.002) (19 MB)  
[翻译小程序\_编译.zip.003](https://forum.freemdict.com/uploads/short-url/3CfWOLcWEjVIDXzqhpoamZgUupQ.003) (8.5 MB)  
[翻译小程序\_发布源码.zip](https://forum.freemdict.com/uploads/short-url/ldlsU7WeOtCcdQA4W2SCbKKuxLX.zip) (32.7 KB)

如果对您有帮助点个👍吧. 有bug可以回复反馈

---

<div class="post-metadata">

作者： ![hmilu](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hmilu/32/18661_2.png) [@hmilu](https://forum.freemdict.com/u/hmilu)\
发布日期： [2024 年12 月 12 日 15:50 UTC](https://forum.freemdict.com/t/topic/34717/2 "2024-12-12T15:50:37Z")

</div>

能否考虑将anki中句子中的对当前 word 变成粗体，这样更一目了然。

---

<div class="post-metadata">

作者： ![First\_Last](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/first_last/32/5_2.png) [@First\_Last](https://forum.freemdict.com/u/First_Last)\
发布日期： [2024 年12 月 13 日 08:41 UTC](https://forum.freemdict.com/t/topic/34717/4 "2024-12-13T08:41:17Z")

</div>

请问解开的文档要如何使用？  
还是要修改 mdx ？  
谢谢。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2024 年12 月 13 日 10:12 UTC](https://forum.freemdict.com/t/topic/34717/5 "2024-12-13T10:12:00Z")

</div>

你好, 我不是很明白你说的是什么意思,跟mdx无关,是在这里配置的.

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/e/1/e121441d188744dad3614a1a2a0f3b071fcd919e.png)

---

<div class="post-metadata">

作者： ![First\_Last](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/first_last/32/5_2.png) [@First\_Last](https://forum.freemdict.com/u/First_Last)\
发布日期： [2024 年12 月 14 日 02:04 UTC](https://forum.freemdict.com/t/topic/34717/6 "2024-12-14T02:04:11Z")

</div>

没注意到 GoldenDict 还有这功能。  
我再自己研究看看。  
谢谢。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2024 年12 月 20 日 15:36 UTC](https://forum.freemdict.com/t/topic/34717/8 "2024-12-20T15:36:44Z")

</div>

更新了,顶一下 😁

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2024 年12 月 21 日 06:15 UTC](https://forum.freemdict.com/t/topic/34717/10 "2024-12-21T06:15:23Z")

</div>

添加好了直接用golendict的剪切板查词 ctrl c就行了呀 🥹

---

<div class="post-metadata">

作者： ![hmilu](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hmilu/32/18661_2.png) [@hmilu](https://forum.freemdict.com/u/hmilu)\
发布日期： [2025 年1 月 5 日 06:26 UTC](https://forum.freemdict.com/t/topic/34717/12 "2025-01-05T06:26:04Z")

</div>

MacOS 上用不了exe。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2025 年1 月 5 日 08:04 UTC](https://forum.freemdict.com/t/topic/34717/13 "2025-01-05T08:04:31Z")

</div>

源码已上传, 运行app.py

---

<div class="post-metadata">

作者： ![hmilu](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hmilu/32/18661_2.png) [@hmilu](https://forum.freemdict.com/u/hmilu)\
发布日期： [2025 年1 月 5 日 18:20 UTC](https://forum.freemdict.com/t/topic/34717/14 "2025-01-05T18:20:36Z")

</div>

感谢你的分享。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2025 年1 月 16 日 22:05 UTC](https://forum.freemdict.com/t/topic/34717/15 "2025-01-16T22:05:11Z")

</div>

d=====(￣▽￣\*)b

---

<div class="post-metadata">

作者： ![nguyenvanhoang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/n/cc9497/32.png) [@nguyenvanhoang](https://forum.freemdict.com/u/nguyenvanhoang)\
发布日期： [2025 年1 月 19 日 05:22 UTC](https://forum.freemdict.com/t/topic/34717/16 "2025-01-19T05:22:51Z")

</div>

你好 bolabo123。  
如何将 context\_translation 的内容设置为越南语？  
非常感谢。

---

<div class="post-metadata">

作者： ![nguyenvanhoang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/n/cc9497/32.png) [@nguyenvanhoang](https://forum.freemdict.com/u/nguyenvanhoang)\
发布日期： [2025 年1 月 21 日 08:59 UTC](https://forum.freemdict.com/t/topic/34717/17 "2025-01-21T08:59:44Z")

</div>

你好 bolabo123。  
在 destination\_language 中设置后，已经有了越南语和法语的 context\_translation。  
非常感谢你。你真是太棒了！

 ![Fran1](https://forumcdn.freemdict.com/uploads/default/original/3X/9/b/9b9870287b81c47bedf8caca955da96efd73f8f6.png)  
 ![Fran2](https://forumcdn.freemdict.com/uploads/default/original/3X/0/0/002a3a7c995c4d62ded6515b78ce74fc0676f713.png)  
 ![Viet1](https://forumcdn.freemdict.com/uploads/default/original/3X/a/5/a5fc7c8c841618493ee308e12e6ed4875b7ed3be.png)  
 ![Viet2](https://forumcdn.freemdict.com/uploads/default/original/3X/e/0/e07efa32a10ae2c9868118f8e202be19c02a31f5.png)

---

<div class="post-metadata">

作者： ![nguyenvanhoang](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/n/cc9497/32.png) [@nguyenvanhoang](https://forum.freemdict.com/u/nguyenvanhoang)\
发布日期： [2025 年1 月 21 日 11:59 UTC](https://forum.freemdict.com/t/topic/34717/18 "2025-01-21T11:59:32Z")

</div>

你好，bolabo123。  
该 Python 程序的所有功能都正常运行。如果可能的话，您可以添加以下功能：

1. 为 Text 添加 destination\_language。
2. 为 Text 添加 Audio。
3. 增加将 Text Audio 和 Context Audio 集成到 Anki 的功能。  
如果能添加上述功能，这个 Python 程序将是非常棒的！  
非常感谢您。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2025 年2 月 14 日 15:11 UTC](https://forum.freemdict.com/t/topic/34717/19 "2025-02-14T15:11:33Z")

</div>

主题太老没办法修改了. 😥

**FAQ:**

1.假设anki template context中有`"` 导致无法正常显示的问题,请手动修改anki template

> **anki front template**
>
> ```auto
> <script>
> // 获取字段内容
> //var context = "{{Context}}";
> var text = "{{Text}}";
> var modifiedContextElement = document.getElementById("modifiedContext");
> // 创建正则表达式，忽略大小写，全局匹配
> var re = new RegExp(text, 'ig');
> // 将匹配到的内容替换成加粗的HTML标签
> var modifiedContext = modifiedContextElement.innerHTML.replaceAll(re, "<b>$&</b>");
> // 将修改后的内容设置为元素的 textContent
> modifiedContextElement.innerHTML = modifiedContext;
> 
> </script>
> 
> ```

2.语法纠错功能用法: 只需要在你要纠错的句子前面加上`~`. 比如 `~I have a apple`

 ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/6/3/63e63cdc5d68fe74bc0b56ca186cefd8d0f03be1.png)  
3. 在设置内指定你想翻译的语言  
4. destination\_language不输入默认为中文.  
5. **中英互译** 模式,打开之后无视 destination\_language选项, 输入英文则会翻译为中文,输入中文翻译为英文

**更新**  
**修复**

> 1.用神奇的O3-mini重构了下代码,  
> 2.第一次保存api设置不生效的问题,  
> 3.因为大小写而无法正常解析的问题.

**新增**

> 1.重写了prompt,把translate改成rewrite  
> 2.新增模型切换功能
> 
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/8/d/8de595f5f0bc652a52979f95efe929abb6c16d35.png)  
> 3.中日韩(无空格分词)语言的词组解析  
> ![image](https://forumcdn.freemdict.com/uploads/default/original/3X/e/5/e5b8d104376fa20f385dc85095dab5b86483d00e.png)

**下载地址:**  
[translaterservice发布源码.zip](https://forum.freemdict.com/uploads/short-url/5vtXeF0HBrVyxrB0AwwLoL9T3qQ.zip) (31.8 KB)  
[翻译小程序.zip.001](https://forum.freemdict.com/uploads/short-url/5j5cUpzZ7JC6zXdkV0Egenlas2y.001) (19 MB)  
[翻译小程序.zip.002](https://forum.freemdict.com/uploads/short-url/5TCU5rXhWcO18cBghDZmYh8LLc4.002) (19 MB)  
[翻译小程序.zip.003](https://forum.freemdict.com/uploads/short-url/NxQlX3dx4AQcv1W76WOpHTB0LT.003) (8.5 MB)

本人是新手且精力有限,代码不会常维护,对此很抱歉.

---

<div class="post-metadata">

作者： ![hmilu](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hmilu/32/18661_2.png) [@hmilu](https://forum.freemdict.com/u/hmilu)\
发布日期： [2025 年2 月 18 日 01:24 UTC](https://forum.freemdict.com/t/topic/34717/20 "2025-02-18T01:24:54Z")

</div>

报告一个可能的问题， 最近版本custom\_prompt.py 文件中 generate\_translation\_prompt 函数下可能漏掉了几行，比如： 翻译 的 json 格式。 否则，用gemini 往往出不来句子的翻译。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2025 年2 月 18 日 03:17 UTC](https://forum.freemdict.com/t/topic/34717/21 "2025-02-18T03:17:31Z")

</div>

你好,是因为这几天gemini api出了问题,即使每分钟请求一两条也报429错误(超过请求上限),只能等官方修复了.

---

<div class="post-metadata">

作者： ![hmilu](https://forumcdn.freemdict.com/user_avatar/forum.freemdict.com/hmilu/32/18661_2.png) [@hmilu](https://forum.freemdict.com/u/hmilu)\
发布日期： [2025 年2 月 18 日 03:32 UTC](https://forum.freemdict.com/t/topic/34717/22 "2025-02-18T03:32:12Z")

</div>

实际情况是 gemini 可以 word analysis， 但就是不出整句的翻译。 后来我自己尝试明确加上 output 的 json 格式，明显输出整句翻译的比例大幅上升，可达90%。 请参考。

---

<div class="post-metadata">

作者： ![bolabo123](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/b/4491bb/32.png) [@bolabo123](https://forum.freemdict.com/u/bolabo123)\
发布日期： [2025 年2 月 18 日 05:21 UTC](https://forum.freemdict.com/t/topic/34717/23 "2025-02-18T05:21:04Z")

</div>

感谢反馈,我会修改一下prompt.  
可能的原因: prompt也会影响API的请求 + 官方api服务本身存在问题.  
前几天我注意到 , 使用同样的apikey,我在cherry studio里用不报429错误而这个软件的翻译报错.在谷歌官方的论坛搜,最近有很多人遇到同样问题.  
在今天,不更改prompt的前提下,请求无异常了,可能是官方修复了bug.

---

<div class="post-metadata">

作者： ![wrxys](https://forumcdn.freemdict.com/letter_avatar_proxy/v4/letter/w/c68b51/32.png) [@wrxys](https://forum.freemdict.com/u/wrxys)\
发布日期： [2025 年5 月 25 日 05:58 UTC](https://forum.freemdict.com/t/topic/34717/24 "2025-05-25T05:58:10Z")

</div>

好用，谢谢。但是，貌似那个微软的发声引擎被设置成了只按照英文读，如果能根据所选文字的语言智能选择语音来发音就完美了
