Python 程序 : 在 golendict 中翻译句子,标注词组

简介:

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

用法:

  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 申请 Gemini API 密钥。
    • 免费且相对更强大。
    • 缺点:需要某工具
  2. 第三方 API (例如: 硅基流动):
    • 访问硅基流动官网 或其他兼容 OpenAI 接口的平台注册并申请 API 密钥。
    • 优点,不用 wall.

三、 配置工具

  1. 下载并解压工具包:

    • 下载工具包的 zip 文件并解压到您常用的目录。
  2. 编辑 config.ini:

    • 打开解压后的文件夹,找到并打开 config.ini 文件。

    • 根据您的选择,填写 [providers] 部分:

      • 使用 Gemini:
        [providers]
        selected_provider = gemini
        
      • 使用第三方 API (例如: 硅基流动):
        [providers]
        selected_provider = openai
        
    • 填写 [providers.openai][providers.gemini] 部分:

      • [providers.openai] (如果您使用第三方 API):
        [providers.openai]
        api_key = 您的第三方 API 密钥
        ;api_base = 第三方网址(可选)
        
      • [providers.gemini] (如果您使用 Gemini):
        [providers.gemini]
        api_key = 您的 Gemini API 密钥
        
  3. 保存 config.ini 文件。

四、 配置 GoldenDict

  1. 打开 GoldenDict 的程序设置:

    • 打开 GoldenDict,点击菜单栏的 “编辑” → “词典” → “词典来源” → “网站”。
  2. 添加新的网址:

    • 点击 “添加” 按钮。
    • 启用: 勾选。
    • 名称: 填写一个您容易识别的名称,例如 “句子翻译工具”。
    • 地址: 填写 http://127.0.0.1:5000/?text=%GDWORD%
  3. 保存设置: 点击 “确定” 保存设置。

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

更新:
2024年12月17日更新:
直接用goldendict调用python会带来1-2s的时间开销,改成了服务器端运行.
2024年12月20日更新:
加入了缓存机制,在flask服务器重启之前,查询结果会保留,
现在不需要配置ankiconnect了, 不需要配置anki参数了(如果卡组,模板不存在则程序会自动创建),
只需要在config填写一下AI提供者和api即可.

下载地址:
编译为exe版本:
链接: https://pan.baidu.com/s/176z_Fp4WXWb_9lbNuzAXxA?pwd=qxgp 提取码: qxgp 复制这段内容后打开百度网盘手机App,操作更方便哦

如果你想自己编译:
翻译小工具源码.zip (15.8 KB)

1 个赞

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

你可以在anki 模板的front template 加这样一段就可以加粗显示

<div id="modifiedContext"></div>
<script>
    // 获取字段内容
    var context = "{{Context}}";
    var text = "{{Text}}";
    var modifiedContextElement = document.getElementById("modifiedContext");


    // 如果 text 为空,则直接显示 context,不做加粗
    if (!text || text.trim() === ""){
         modifiedContextElement.textContent = context;
    }else{
        // 创建正则表达式,忽略大小写,全局匹配
         var re = new RegExp(text, 'ig');
        // 将匹配到的内容替换成加粗的HTML标签
        var modifiedContext = context.replaceAll(re, "<strong>$&</strong>");

        // 将修改后的内容设置为元素的 textContent
        modifiedContextElement.innerHTML = modifiedContext;

    }
</script>

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

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

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

更新了,顶一下 :grin:

门槛过高,不如直接 Ctrl-C, Ctrl-V,左手 腾讯翻译,右手 ChatGPT。

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

翻译水平我曾经比较过几十个翻译软件,简单易用的就是 ChatGPT 和 腾讯翻译。其他不是文字限长度就是广告,要么就是质量太拉跨、等待时间长等问题。

当然楼主大大这个是有其优势的,适合一次配置,多次翻译的场景。我个人没经历过,这些就没什么能说的了。