谷歌翻译API以及一个单词的多种翻译

7

我正在使用 google-api-translate-java-0.92.jar。


Translate.setHttpReferrer("<a rel="noreferrer" href="http://translate.google.com/">http://translate.google.com/</a>");
        try {
            String translation = Translate.execute("arrangement", Language.ENGLISH, Language.UKRANIAN);
            System.out.println(translation);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

但是我只得到一种翻译。 我去 http://translate.google.com/ 页面,它给了我多种翻译。 我该如何从我的代码中获得多个翻译?

3个回答

8

我不相信你能...

看源代码,它会构建以下 URL:

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=en|uk&q=arrangement

当您查看JSON响应时,返回:

{"responseData": {"translatedText":"Композиція"}, "responseDetails": null, "responseStatus": 200}

正如您所看到的,这只返回一个单词。Google翻译页面上的字典查找必须是对不同服务的其他调用(而不是翻译服务的一部分)。


编辑

使用Firebug,您可以查看翻译页面正在进行的请求,并获得此URL:

http://translate.google.com/translate_a/t?client=t&text=arrangement&hl=en&sl=en&tl=uk&multires=1&otf=2&pc=0&sc=1

这将返回:

[[["Композиція","arrangement","Kompozytsiya"]],[["noun",["розташування","розміщення","домовленість","аранжування","упорядкування","механізм","оформлення","пристрій","систематизація","монтаж","пристосування","урегулювання","плани","згода","залагода","розв'язання","порозуміння"]]],"en"]

然而,你正在使用的翻译JAR不支持这种扩展的URL格式(至少我在 Google Code 的源代码中找不到它),它不是googleapis子域的一部分,我甚至不确定它是否面向公众或者直接调用是否违反了Google的条款和条件。

但是他们无论如何都是以这种方式生成字典列表的...


嗨@tim_yates,那真的非常有帮助!我们可以通过一些字符串处理轻松地获取单词的同义词。请问您能否为“名”(一些日语字符)生成相同的链接以将其翻译成英文?因为这将有助于理解参数hl和sl。 - Shubham Baldava
当我尝试点击你的“编辑”小标题下的第一个链接时,我收到了403错误。 - webmagnets
是的,看起来他们把它关掉了。 - tim_yates

7

0

有一个 增强请求 关于这个功能。所以看起来你没有做错什么;API只是没有暴露那个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接