大多数人对于不同语言的翻译功能基本需求如下:
- 翻译文本阅读
- 单词读音/音频
- 输入文本翻译
- 阅读电子书
大多数人是如何使用这几种翻译的方式呢?
翻译文本阅读
将需要翻译的文本复制到 翻译工具/软件 中, 这过程需要切换不同的软件, 非常繁琐.
单词读音/音频
将需要翻译的单词复制到 翻译工具/软件, 并点击播放音频.
输入文本翻译
将需要翻译的文本复制到 翻译工具/软件 进行翻译, 然后再将翻译结果复制.
阅读电子书
将电子书翻译
缺点是翻译结果比较生硬, 不如一个一个单词翻译准确.
将电子书的翻译单词复制到 翻译工具/软件 进行翻译.
在这些 翻译需求中, 尤其以 输入翻译 和 播放单词音频 在不同 翻译工具/软件 难以达到理想状态.
在下面我将介绍如何使用 Emacs 快速/高效/一体化 进行以上 翻译需求
Emacs 能将以上翻译需求 速率更快/效率更高
我将要使用 Emacs 的两个包实现将这些功能:
(Emacs 版的 谷歌翻译)GitHub - atykhonov/google-translate: Emacs interface to Google Translate
GitHub - ISouthRain/dict-line: Emacs show Dict . Emacs 显示字典词.
你应该需要学会这两个包的使用…
关于如何使用这两个包, 这是我的配置, 你将这些代码放到 init.el 中即可:
(use-package google-translate
:ensure t
:bind (("C-c fy" . google-translate-smooth-translate)
("C-c fi" . freedom-translate-text-from-minibuffer)
("C-c fr" . freedom-translate-replace))
:init
(setq google-translate-default-source-language "auto"
google-translate-default-target-language "zh-CN"
google-translate-translation-directions-alist
'(("en" . "zh-CN") ("zh-CN" . "en")))
(freedom-add-to-context-menu ["Translate text" (google-translate-at-point)])
(freedom-add-to-context-menu ["Translate paragraphs" (google-translate-paragraphs-overlay)])
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 自建, 依赖 google-translate
(defun freedom-translate-text-from-minibuffer ()
"Entered text is automatically translated into English."
(interactive)
(require 'google-translate-core-ui)
;; (add-hook 'minibuffer-setup-hook 'toggle-input-method)
;; Enter translation text and translate
(setq freedom-translate-txt (read-from-minibuffer "zh-CN > En: "))
(google-translate-translate "zh-CN" "en" freedom-translate-txt 'echo-area)
;; Remove hook
;; (remove-hook 'minibuffer-setup-hook 'toggle-input-method)
;; Fill in the translated text
(insert google-translate-result-translation)
)
(defun freedom-translate-replace (beg end)
"Translate and replace selected text with the result from Google Translate.
The user can choose the translation direction via the minibuffer."
(interactive "r")
(let ((selected-text (buffer-substring-no-properties beg end))
(translation-direction (completing-read "Choose translation direction: "
'("zh-CN >> en" "en >> zh-CN"))))
;; Delete selected text
(delete-region beg end)
;; Make sure translation functionality is introduced
(require 'google-translate-core-ui)
;; Call the translation function according to the translation direction selected by the user
(cond
((string-equal translation-direction "zh-CN >> en")
(google-translate-translate "zh-CN" "en" selected-text 'echo-area)
(insert google-translate-result-translation))
((string-equal translation-direction "en >> zh-CN")
(google-translate-translate "en" "zh-CN" selected-text 'echo-area)
(insert google-translate-result-translation)))
))
)
(use-package dict-line
:ensure t
:vc (:url "https://github.com/ISouthRain/dict-line")
:diminish
(dict-line-mode "🗺️")
:ensure nil
:defer 2
:custom
(dict-line-audio t)
(dict-line-audio-root-dir "F:/Your/pronunciations/")
(dict-line-dict-directory "~/.emacs.d/Your/dict/")
(dict-line-dict-personal-file "~/.emacs.d/Your/dict/Mydict.ts")
(dict-line-display #'dict-line--posframe)
(dict-line-idle-time 1)
:config
(dict-line-mode t)
)
1. 翻译文本阅读
这个需要借用 M-x google-translate-smooth-translate 或者 C-c fy
M-x 代表按键 Alt + x, C-c fy 代表按键 Ctrl + c fy
效果:
2. 单词读音/音频/翻译
这我们需要使用 dict-line 这个包, 你只需要开启 dict-line-mode , 然后将光标放到 单词 就会 自动翻译&播放单词音频
效果:
3. 转换输入翻译内容
这需要 M-x freedom-translate-text-from-minibuffer 或者 C-c fi
效果如下:
4. 阅读电子书
要在 Emacs 阅读电子书(.epub), 需要安装: nov.el: Major mode for reading EPUBs in Emacs
(use-package nov
:ensure t
:mode ("\\.epub\\'" . nov-mode)
:custom
(nov-save-place-file "~/.emacs.d/Your/nov-places")
:init
(add-hook 'nov-mode-hook 'visual-line-mode)
(setq nov-text-width t)
(setq visual-fill-column-center-text t)
(setq nov-temp-dir "~/.emacs.d/temp/nov");; 无效
)
之后就可以使用 Emacs 打开 电子书(.epub) 文件, 在 Emacs 阅读了.
效果:
直至, 有关 Emacs 翻译告一段落.
我个人 Emacs 阅读电子书/翻译/记笔记/捕获 一体化
这是我的 Emacs 有关 Emacs 阅读电子书/翻译/记笔记/捕获 一体化.
我借用 org-capture && nov && 翻译 在 Emacs 阅读电子书/翻译/记笔记/捕获 一体化效果:
后面我会写一篇有关我个人如何在 Emacs 高效阅读电子书 && 翻译 && 捕获笔记 && 记录阅读笔记 的文章.
敬请期待.
最后: 如果本文章帮到了你, 你可以请我喝杯 咖啡 !!
请我喝咖啡, 谢谢你!