新写的 Google 翻译插件

Google Web 端的自动检测有时候也是一塌糊涂。

针对中文+英文,我不知道有没有更智能、更有效的方式。最好有人分享下。

image

你上面给出的方案其实已经可以解决了一部分这个问题了。但太长的句子不行,我再测试一下。

比如下面这段就会识别错:

Recall that Haskell is an expression-oriented language. In an imperative language, it
can make sense to omit the else branch from an if, because we’re working with
statements, not expressions. However, when we’re working with expressions, an if that
was missing an else wouldn’t have a result or type if the predicate evaluated to False,
so it would be nonsensical.

@aqua0210 你试试这样:

(advice-add #'go-translate-text-local-p :filter-args
            (lambda (args)
              (setf (car args)
                    (with-temp-buffer
                      (insert (car args))
                      (replace-regexp "\\s." "" nil (point-min) (point-max))
                      (buffer-string)))
              args))
1 个赞

这个可以正常转换了, :+1:

代码已合并。其实这种搞法并不完美,它依赖当前的syntax table,有可能会判断出错的——但总是聊胜于无。

现在不需要任何配置。不过如果还有判断失误的情况,可以修改 syntax table,也可以通过 go-translate-local-language-transformer 指定自己的预处理逻辑。

先这样了。

@lorniu 请问一下这个包显示翻译结果的buffer是属于什么类型的? 不知道为什么就这个buffer没法显示awesome-tab,也没法像其他只读buffer一样可以让sis自动转换输入法为英文。
@goumao 能帮忙看一下吗?

粗略看了下,是建了一个新buffer,叫做 *Go Translate*.
因为是新buffer,sis会自动转换输入法为英文。

另外,因为是*打头的特殊buffer,
正常的话,sis应该会disable 前缀键截取

感谢抽空帮忙分析。但我这边在这个*Go Translate* buffer 下输入法模式使用了前一个buffer的中文输入法。

粗略看了下 smart-tab 的文档和代码,感觉它的实现是有问题的。它通过定制 header-line-format的方式显示 tab 页,虽然这么处理很简单,但有些 buffer 本身就使用了 header-line-format,所以自然会冲突。

明白了,原来是Go-translate 的buffer 使用了header-line 显示 中英文,将awesome-tab 给覆盖了。不过这个不影响使用。
这种实现确实会影响其他用到header-line的功能,类似的还有org-agenda的列视图模式。
至于为什么awesome-tab 采用这个方案,估计是当时emacs 还没增加tab-bar 的功能吧。感谢解惑!

用起来了,很不错

目前不给翻译只读文本,希望能支持只读文本的翻译

请问有人遇到过这样的报错吗?我同样配置在Windows 和 Linux下都能正常工作。但是在Mac 系统下,会有这样的错误。

user-error: Error when fetching Token-Key. Check your network and proxy, or retry later

Emacs (28.0.50)配置:

(setq go-translate-base-url "https://translate.google.cn")
(setq go-translate-local-language "zh-CN")
(setq go-translate-buffer-follow-p t)

(setq go-translate-inputs-function
      #'go-translate-inputs-current-or-prompt)

最近我的也是报这个错

你也是在Mac平台吗? 我在其他平台没问题。

我是 arch linux

1 个赞
(defun go-translate-token--extract-tkk ()
  (cons 430675 2721866130))

加上这个之后正常了,参考自 https://github.com/atykhonov/google-translate/issues/52

1 个赞

感谢,这样确实可以解决这个问题。 :+1:

很好用,灵活性很强。谢谢。

最近确实用不了,不知道什么原因