重复造轮子之一个新的中英文翻译插件,支持离线

又造了一个轮子,之前一直使用的是 youdao-dictionary.el,很好很强大,但如果不配置token已经很久都用不了了;而另一位大佬的 fanyi.el 不支持长句和离线,所以我又造了一个自用的新轮子

支持的翻译引擎:

  • youdao(有道)
  • bing(必应)
  • iciba(金山词霸)
  • dictcn(海词)
  • google(谷歌)
  • sdcv(离线)

有啥功能:

  1. 全部使用各翻译网站的公开接口或页面,不需要配置密钥
  2. 谷歌翻译,支持单独设置代理
  3. 长句翻译,仅支持youdao和google
  4. 离线翻译,不需要安装命令行sdcv,纯elisp实现(抄的emacs wiki),首次翻译需要加载词典到内存,这会耗费一定时间
  5. 多引擎翻译,只是简单的把所有结果和在一起
  6. 翻译接口除sdcv外均支持异步,但我目前用的同步翻译,需要异步的可自行调用

目前比较符合我自己的使用场景,只提供了两个接口,分别显示到echoarea(方便阅读)和buffer(方便复制),另外,我需要的是一个快速翻译的功能,但平时用的也不多,所以暂不会添加读音和生词本等功能,感兴趣的道友可以看看

7 个赞

准备用一用。不过我现在日常除了用传统翻译引擎外,还会用 GPT 处理一些翻译工作

这点不错,我一直用的 go-translate, 不过设了代理后,bing的翻译结果很慢。

不错不错, 感谢你的工作 ~
翻译速度很快哟 !!
原来 sdcv 还有纯 elisp 实现的呀, 厉害 !!!

read lazyworm-ce index: 62%

如上的文字,光标在read的时候能够正常翻译,光标在lazyworm-ce中翻译的时候会出现以下错误信息: string-trim: Wrong type argument: stringp, nil

配置代码如下:

(use-package maple-translate
    :ensure nil
    :commands (maple-translate maple-translate+)
    :bind ("C-x y" . maple-translate+)
    :config
    ;; (add-to-list 'maple-translate-alist '(custom . custom-translate-function))
    ;; (setq maple-translate-engine 'custom)
    ;; or use multi engines
    (setq maple-translate-engine '(sdcv youdao dictcn ))

    ;; with google translate
    (setq maple-translate-google-url "https://translate.googleapis.com/translate_a/single")
    (setq maple-translate-google-proxies
          '(("http" . "127.0.0.1:1086")
            ("https" . "127.0.0.1:1086")))

    ;; with offline sdcv
    (setq maple-translate-sdcv-dir (expand-file-name "resources/sdcv-dict" user-emacs-directory))
    (setq maple-translate-sdcv-dicts
          '(("lazyworm-ec" . "stardict-lazyworm-ec-2.4.2")
            ("lazyworm-ce" . "stardict-lazyworm-ce-2.4.2")))
    )

最新代码已修复,不过lazyworm只有google能查到

纯属站在巨人肩膀上 :joy: https://www.emacswiki.org/emacs/stardict.el

问题已经解决,谢谢。

大佬这个插件可以通过添加离线词典来翻译其它语言么

理论上是可以的,只要离线词典支持,同时翻译成多国语言都行

可以请教下您这个插件和这个帖子emacs + goldendict 查单词 里的方法有什么不同吗?或者说能覆盖它的功能嘛。 P.S 看不太懂源码,希望大佬能解惑,谢啦!

没有谁覆盖谁的说法,如果你本地能安装goldendict或者sdcv,那么离线翻译的体验会更好一些,如果不想安装除emacs之外的依赖,你可以试一下我这个。

最好的办法是两个插件都下载下来试一下,看哪个更适合自己

ok,感谢!