lorniu / go-translate

Translator on Emacs. Supports multiple engines such as Google, Bing, deepL, ChatGPT, StarDict, Youdao and so on.
GNU General Public License v3.0
274 stars 37 forks source link

overlay render not working in devdocs buffers #78

Closed seagle0128 closed 1 month ago

seagle0128 commented 1 month ago

I got this error while translating in a devdoc buffer, generated by devdoc.el.

[output error] Error in translation, error 
{"statusCode":400,"errorMessage":""}

My config is:

(setq gt-default-translator (gt-translator
                           :taker   (list (gt-taker :pick nil :if 'selection)
                                          (gt-taker :text 'paragraph :if '(Info-mode help-mode helpful-mode))
                                          (gt-taker :text 'buffer :pick 'fresh-word :if 'read-only)
                                          (gt-taker :text 'word))
                           :engines (if (display-graphic-p)
                                        (list (gt-bing-engine :if 'not-word)
                                              (gt-youdao-dict-engine :if 'word))
                                      (list (gt-bing-engine :if 'not-word)
                                            (gt-youdao-dict-engine :if 'word)
                                            (gt-youdao-suggest-engine :if 'word)
                                            (gt-google-engine :if 'word)))
                           :render  (list (gt-posframe-pop-render :if (lambda (translator)
                                                                        (and (display-graphic-p)
                                                                             (not (derived-mode-p 'Info-mode 'help-mode 'helpful-mode))
                                                                             (not (member (buffer-name) '("COMMIT_EDITMSG")))))
                                                                  :frame-params (list :accept-focus nil
                                                                                      :width 70
                                                                                      :height 15
                                                                                      :left-fringe 16
                                                                                      :right-fringe 16
                                                                                      :border-width 1
                                                                                      :border-color gt-pin-posframe-bdcolor))
                                          (gt-overlay-render :if 'read-only)
                                          (gt-insert-render :if (lambda (translator) (member (buffer-name) '("COMMIT_EDITMSG"))))
                                          (gt-buffer-render))))
lorniu commented 1 month ago

(gt-taker :text 'buffer :pick 'fresh-word :if 'read-only)

I guess: all words in the buffer are joined and sent to the server, it's too long and be denied by the server.

You can change to (gt-taker :text 'paragraph :pick 'fresh-word :if 'read-only) to check if the error still exists.

seagle0128 commented 1 month ago

Correct! I changed my configuration and close it.