【发布时间】:2021-05-14 21:34:20
【问题描述】:
from googletrans import Translator
foreign_word = "Montag"
t = Translator()
translated_word = t.translate(foreign_word, src='de', dest='en').text
print(translated_word) # Expecting "Monday", but prints "Montag"
对于不同的德语单词,我多次调用上面截取的代码。一开始,翻译器正在工作,但现在每当我尝试执行上面的代码时,translated_word 总是与foreign_word 相同(逐个字符)。
问题:我是在错误地使用 API,还是您每天/每小时可以翻译有限次数?
命令行版本似乎也不起作用:
translate "Montag" -s de -d en
[en] Montag
->
[en] Montag
[pron.] Montag
我正在使用 Python 3.8.5
【问题讨论】:
-
文档 (py-googletrans.readthedocs.io/en/latest/…) 说参数是
dest而不是dst。 -
@SvenEberth 感谢您的关注,我已将其更新为
dest,但问题仍然存在。 -
我现在可以观察到相同的行为。第一个翻译工作得很好。现在我收到了源词。似乎是谷歌的一种速率限制——显然他们希望你为翻译 API 付费:/ 已经有一个相关问题:github.com/ssut/py-googletrans/issues/290
-
我认为这个模块不使用官方 API 而是使用非官方 url 来获取翻译 - 谷歌可能会阻止它。在源代码中,我找到了
https://translate.google.com/translate_a/single,但它看起来不像官方 API 的 url。官方API可能需要自己的client_ID和client_secret,需要在谷歌注册自己的应用程序。 -
@furas 你完全正确。我想我表达得有些不清楚。他们使用 Ajax API(由翻译网站 translate.google.com 本身使用)。但是谷歌不希望你自己使用这个 API,所以他们限制了请求。所以不幸的是,你必须使用官方的许多请求(你必须付费)。
标签: python python-3.x google-translate