go-translate icon indicating copy to clipboard operation
go-translate copied to clipboard

reuse last translate path

Open QiangF opened this issue 2 years ago • 3 comments

Fix https://github.com/lorniu/go-translate/issues/35

QiangF avatar Sep 05 '22 10:09 QiangF

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.

QiangF avatar Sep 05 '22 11:09 QiangF

You can turn off auto judge by executing (setq gts-picker-lang-match-alist nil).

Please test and report the result.

lorniu avatar Sep 06 '22 02:09 lorniu

auto judge is nice. I would rather keep it. My fix just adds the fallback behavior.

QiangF avatar Sep 06 '22 07:09 QiangF

你看看我最新的修改 95804f3 能不能符合预期。

lorniu avatar Oct 28 '22 11:10 lorniu

好像不行,比如下面的俄文:

Товары

重现步骤

  1. 配置 (setq gts-translate-list '(("en" . "zh") ("ru" . "en") ("ja" . "en") ("de" . "en") ("fr" . "en")))
  2. put point on Товары and do gts-do-translate
  3. 移到下一个ru->en:M-n
  4. 退出重来 put point on Товары and do gts-do-translate

See? ru->en选项没有在最前面

想要的状态,步骤4,不需要再使用移到下一个ru->en:M-n

QiangF avatar Oct 30 '22 05:10 QiangF

你可以试试我的改动,是可以的。你的包用了很多高级功能,对初学者不太友好,难度这就是所谓的:lisp的诅咒 :-)

QiangF avatar Oct 30 '22 05:10 QiangF

我这里测试可以啊?试了好几次,ru->en 都会到最前面。奇怪。

lorniu avatar Oct 30 '22 15:10 lorniu

我这边还是不行 :

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 Товары

QiangF avatar Oct 31 '22 00:10 QiangF

找到问题了,在那个translate buffer, 按M-n,应该保存当前的path到last path

出现的时间顺序

  1. gts-do-translate 此时默认 zh-en
  2. 在popup buffer里M-n ,此时是 ru-en
  3. 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))))

QiangF avatar Oct 31 '22 01:10 QiangF

如果加上自动识别,默认最好是 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)))

QiangF avatar Oct 31 '22 01:10 QiangF

明白了。已更新,请测试。

lorniu avatar Oct 31 '22 07:10 lorniu

高手,厉害!

QiangF avatar Oct 31 '22 09:10 QiangF