go-translate
go-translate copied to clipboard
reuse last translate path
Fix https://github.com/lorniu/go-translate/issues/35
The issue is that the gts-matched-paths is not always correct, the user's choice should be respected and remembered in case the guessed path is wrong. Instead of starting from the wrong match every time.
You can turn off auto judge
by executing (setq gts-picker-lang-match-alist nil)
.
Please test and report the result.
auto judge is nice. I would rather keep it. My fix just adds the fallback behavior.
你看看我最新的修改 95804f3 能不能符合预期。
好像不行,比如下面的俄文:
Товары
重现步骤
- 配置 (setq gts-translate-list '(("en" . "zh") ("ru" . "en") ("ja" . "en") ("de" . "en") ("fr" . "en")))
- put point on Товары and do gts-do-translate
- 移到下一个ru->en:M-n
- 退出重来 put point on Товары and do gts-do-translate
See? ru->en选项没有在最前面
想要的状态,步骤4,不需要再使用移到下一个ru->en:M-n
你可以试试我的改动,是可以的。你的包用了很多高级功能,对初学者不太友好,难度这就是所谓的:lisp的诅咒 :-)
我这里测试可以啊?试了好几次,ru->en 都会到最前面。奇怪。
我这边还是不行 :
1. emacs -q
2. load go-translate
3. config :
(setq gts-google-rpc-base-url "https://translate.google.cn"
gts-translate-list '(("en" . "zh")
("ru" . "en")
("ja" . "en")
("de" . "en")
("fr" . "en")))
(setq gts-default-translator
(gts-translator
:picker (gts-noprompt-picker)
:engines (gts-google-engine)
:render (gts-buffer-render)))
4. gts-do-translate on Товары
找到问题了,在那个translate buffer, 按M-n,应该保存当前的path到last path
出现的时间顺序
- gts-do-translate 此时默认 zh-en
- 在popup buffer里M-n ,此时是 ru-en
- q 用户退出,我希望把 ru-en 保存到 last path
实际根本没有保存,原代码很绕,没看明白:
(gts-buffer-set-key ("M-n" "Next direction")
(let* ((picker (let ((op (oref translator picker)))
(if (functionp op) (funcall op) op)))
(next (gts-next-path picker text from to)))
(gts-translate translator text (car next) (cdr next))))
如果加上自动识别,默认最好是 picker (gts-noprompt-picker),至少每次少敲个回车键,所以这个不合理,M-n后保存才合理 “是不是只有 gts-picker 选取之后再修改 gts-picker-last-path 才更合理”
(setq gts-default-translator
(gts-translator
:picker (gts-noprompt-picker)
:engines (gts-google-engine)
:render (gts-buffer-render)))
明白了。已更新,请测试。
高手,厉害!