谷歌翻译API和一个单词的许多翻译
我正在使用google-api-translate-java-0.92.jar。
Translate.setHttpReferrer(" http://translate.google.com/ "); 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/页面,它给了我多个翻译。 如何从我的代码中获得多个翻译?
我不相信你能……
查看soucre,它会构建以下URL:
http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=en|uk&q=arrangement
当您查看JSON响应时,返回:
{"responseData": {"translatedText":"Композиція"}, "responseDetails": null, "responseStatus": 200}
如您所见,这只返回一个单词。 谷歌翻译页面上的字典查找必须是对不同服务的额外调用(不是翻译服务的一部分)
编辑
使用firebug,您可以看到翻译页面发出的请求,并获得以下URL:
哪个返回:
[[["Композиція","arrangement","Kompozytsiya"]],[["noun",["розташування","розміщення","домовленість","аранжування","упорядкування","механізм","оформлення","пристрій","систематизація","монтаж","пристосування","урегулювання","плани","згода","залагода","розв'язання","порозуміння"]]],"en"]
但是,您正在使用的翻译JAR不支持这种扩展的URL格式(至少我在谷歌代码的源代码中找不到它),不是googleapis子域的一部分,我甚至不确定它是否为公共消费或直接调用它并不违反谷歌的条款和条件。
但无论如何,这就是他们如何产生一个完整的列表……
来自Google Translate API常见问题解答(已检查:2013年11月16日)
是否可以获得单词的多个翻译 ?
答案:
不可以。此function仅可通过translate.google.com上的网络界面获得
来源: https : //developers.google.com/translate/v2/faq#technical
此function有一个开放的增强请求 。 所以看起来你做错了什么; API只是不公开该function。