很是无奈,google翻译收费了,像我们一般人就用不起了.只能另想办法了.上一篇介绍了使用bing也是解决的办法之一,但是不可否认还是google翻译的更加理想.
首先下载项目所需要的jar包:jsoup-*.jar,commons-io-*.jar,commons-logging-*.jar.为了提高可扩展性我使用了接口,看代码:
package gd.hz.lily.util.translate; /** * 提供系统的语言翻译功能 * @author lfd * 2013-10-01 */ public interface TranslateUtil { /** * http请求的类型(如"text/html" , "text/plain") * @param type 请求的类型 */ public void setContentType(String type) ; /** * 翻译语言(自动识别源语言) * @param text 翻译的内容 * @param srcLang 源语言 * @param targetLang 目标语言 * @return 目标语言内容 */ public String translate(final String text, final String targetLang) throws Exception ; /** * 翻译语言(自动识别源语言) * @param texts 翻译的内容数组 * @param targetLang 目标语言 * @return 目标语言内容 */ public String[] translate(final String[] texts, final String targetLang) throws Exception ; /** * 翻译语言 * @param text 翻译的内容 * @param srcLang 源语言 * @param targetLang 目标语言 * @return 目标语言内容 */ public String translate(final String text, final String srcLang, final String targetLang) throws Exception ; /** * 翻译语言 * @param texts 翻译的内容数组 * @param srcLang 源语言 * @param targetLang 目标语言 * @return 目标语言内容 */ public String[] translate(final String[] texts, final String srcLang, final String targetLang) throws Exception ; }
在这里我提供了一个枚举类,列出google所支持的翻译语言.
package gd.hz.lily.util.translate; /** * 谷歌翻译API定义的语言信息。 * @author lfd 改 * 2013-10-01 */ public enum GoogleLanguage { AUTO_DETECT(""), AFRIKAANS("af"), ALBANIAN("sq"), AMHARIC("am"), ARABIC("ar"), ARMENIAN("hy"), AZERBAIJANI("az"), BASQUE("eu"), BELARUSIAN("be"), BENGALI("bn"), BIHARI("bh"), BULGARIAN("bg"), BURMESE("my"), CATALAN("ca"), CHEROKEE("chr"), CHINESE("zh"), CHINESE_SIMPLIFIED("zh-CN"), CHINESE_TRADITIONAL("zh-TW"), CROATIAN("hr"), CZECH("cs"), DANISH("da"), DHIVEHI("dv"), DUTCH("nl"), ENGLISH("en"), ESPERANTO("eo"), ESTONIAN("et"), FILIPINO("tl"), FINNISH("fi"), FRENCH("fr"), GALICIAN("gl"), GEORGIAN("ka"), GERMAN("de"), GREEK("el"), GUARANI("gn"), GUJARATI("gu"), HEBREW("iw"), HINDI("hi"), HUNGARIAN("hu"), ICELANDIC("is"), INDONESIAN("id"), INUKTITUT("iu"), IRISH("ga"), ITALIAN("it"), JAPANESE("ja"), KANNADA("kn"), KAZAKH("kk"), KHMER("km"), KOREAN("ko"), KURDISH("ku"), KYRGYZ("ky"), LAOTHIAN("lo"), LATVIAN("lv"), LITHUANIAN("lt"), MACEDONIAN("mk"), MALAY("ms"), MALAYALAM("ml"), MALTESE("mt"), MARATHI("mr"), MONGOLIAN("mn"), NEPALI("ne"), NORWEGIAN("no"), ORIYA("or"), PASHTO("ps"), PERSIAN("fa"), POLISH("pl"), PORTUGUESE("pt"), PUNJABI("pa"), ROMANIAN("ro"), RUSSIAN("ru"), SANSKRIT("sa"), SERBIAN("sr"), SINDHI("sd"), SINHALESE("si"), SLOVAK("sk"), SLOVENIAN("sl"), SPANISH("es"), SWAHILI("sw"), SWEDISH("sv"), TAJIK("tg"), TAMIL("ta"), TAGALOG("tl"), TELUGU("te"), THAI("th"), TIBETAN("bo"), TURKISH("tr"), UKRANIAN("uk"), URDU("ur"), UZBEK("uz"), UIGHUR("ug"), VIETNAMESE("vi"), WELSH("cy"), YIDDISH("yi"); /** * 谷歌的当前语言的字符串表示形式。 */ private final String language; /** * 构造函数 * @param 语言标识符。 */ private GoogleLanguage(final String pLanguage) { language = pLanguage; } public static GoogleLanguage fromString(final String pLanguage) { for (GoogleLanguage lang : values()) { if (pLanguage.equals(lang.toString())) { return lang ; } } return null; } /** * 返回的字符串表示这种语言。 * @return 这种语言的字符串表示形式。 */ @Override public String toString() { return language; } }
接下来看一下TranslateUtil的实现类TranslateToGoogle
package gd.hz.lily.util.translate; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; /** * 使用google进行翻译 * @author lfd * 2013-10-01 */ public class TranslateToGoogle implements TranslateUtil { private final String ID_RESULTBOX = "result_box"; private String type = "" ; public void setContentType(String type) { this.type = type ; } public String translate(String text, String targetLang) throws Exception { return translate(text, "", targetLang) ; } public String[] translate(String[] texts, String targetLang) throws Exception { return translate(texts, "", targetLang) ; } public String translate(String text, String srcLang, String targetLang) throws Exception { return execute(text, srcLang, targetLang) ; } public String[] translate(String[] texts, String srcLang, String targetLang) throws Exception { StringBuilder content = new StringBuilder() ; int size = texts.length ; for(int i = 0 ; i < size ; i++) { if(i < size-1) { content.append(texts[i]).append("{*}") ; } else { content.append(texts[i]) ; } } String[] temps = execute(content.toString(),srcLang , targetLang).split("\\{\\*\\}") ; size = temps.length ; //去除左右空白字符 for (int i = 0; i < size; i++) { temps[i] = temps[i].trim() ; } return temps ; } /** * 发送翻译请求 * @param text 要翻译的内容 * @param srcLang 源语言 * @param targetLang 目标语言 * @return 目标语言 * @throws Exception 翻译失败 */ private String execute(final String text, final String srcLang, final String targetLang) throws Exception { inspection(srcLang, targetLang) ; Document document = Jsoup.connect("http://translate.google.com.hk") .data("sl", srcLang) .data("ie", "UTF-8") .data("oe", "UTF-8") .data("text", text) .data("tl", targetLang) .data("ie", "UTF-8") .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7") .cookie("Cookie", "Cookie PREF=ID=8daa1f767f10d1fe:U=f5ac701cf7d3f2e0:FF=0:LD=en:CR=2:TM=1277174286:LM=1289370601:S=q7yslRWEZs3uK1H8; NID=39=UO-TWo9HzzjHc-d_wYm7BVR1cH33KpqaN5h5877_i29nERA93FeG1GSuV3ZSvsOx8D-TnHKpB9m0KhZRH8U9uPwoE-arYd0bAyAlILyXZxLO2_TyGQhJpcMiOLVEuCpq; SID=DQAAAHoAAADMlGzeKhnGkbkIJ36tVO0ZPXgmQ6Cth7Oa6geyyE1WJooW8P01uKUHNrsRkjggvFMAWIWB9J5i18z0F6GjC_oV79mSwXEDGuRFGhRnDyJdid3ptjFW0pIyt4_2D6AMIqtOWF71aWdvY7IvAU1AWMNs8fBZHAOgRqtf3aCUkr36ZA; HSID=A6-YJTnhjBdFWukoR") .timeout(2000000) .post(); Element element = document.getElementById(ID_RESULTBOX); return element.text() ; } /** * 检查Google是否支持语言. */ private void inspection(String srcLang, String targetLang) { if(!"".equals(this.type)) setContentType(type) ; if(GoogleLanguage.fromString(srcLang) == null || GoogleLanguage.fromString(targetLang) == null) { System.out.println("Google不支持的语言") ; } } }
测试:
public static void main(String[] args) { TranslateUtil translate = new TranslateToGoogle() ; try { System.out.println(translate.translate("世界你好!", "en")) ; } catch (Exception e) { e.printStackTrace(); } }
这里需要注意,如果使用get请求是有字数限制的.
相关推荐
在Java编程中,调用Google翻译API可以帮助我们实现自动化翻译的功能,这在处理多语言文本或者构建跨语言应用时非常有用。本篇文章将详细介绍如何在Java中使用Google翻译API,并提供一个可直接运行的工具类示例。 ...
7. **安全与授权**:虽然描述中没有提及,但通常调用谷歌API都需要API密钥。确保在实际项目中遵循谷歌的API使用政策,并妥善处理API密钥,防止泄露。 8. **调试与测试**:使用Visual Studio(.sln文件表明项目是...
在本项目中,我们主要探讨如何使用Java编程语言来调用谷歌翻译(Google Translate)的网络接口,从而实现文章的翻译功能。这是一个典型的Web服务API集成应用,对于学习Java网络编程以及自然语言处理(NLP)技术具有...
在本文中,我们将深入探讨如何使用C#来调用谷歌的翻译API,实现中英文之间的自动翻译功能。 首先,我们需要了解谷歌翻译API的工作原理。谷歌翻译API提供了一种RESTful的服务接口,可以通过HTTP请求进行访问。这种...
PowerShell调用Google翻译网站的服务,实现英译中翻译,控制台程序,输入英文内容,输出中文信息并复制到剪贴板中。
易语言调用Google翻译源码,调用Google翻译,CreateThreadA,翻译,访问网络,取端口,取页面地址,取域名,CloseHandle,网络_Internet激活,网络_Internet建立连接,网络_Http创建请求,网络_Http发送请求,网络_Internet读文件...
谷歌翻译API是Google提供的一种强大的在线翻译服务接口,允许开发者在自己的应用程序中集成翻译功能。在使用谷歌翻译API时,可以采用GET或POST方法进行调用,这两种方式各有特点,适用于不同的场景。 首先,让我们...
调用谷歌接口的,翻译小工具。
易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar ...
谷歌Google翻译客户端是一款基于谷歌翻译API开发的应用程序,旨在为用户提供方便快捷的多语言翻译服务。这个客户端通常由程序员使用编程语言如VB.NET构建,它实现了与谷歌翻译服务器的交互,能够读取并处理在线翻译...
C#可以调用的谷歌翻译类库,只实现了简体繁体和英文之间的互相翻译
在本项目中,"JAVA自动调用谷歌翻译接口实现txt文档翻译.zip" 是一个使用Java编程语言实现的项目,它允许开发者通过调用谷歌翻译(Google Translate)的API来自动翻译TXT格式的文档。这个项目可能包含了一个或者多个...
在本主题中,我们关注的是如何利用C#调用谷歌、百度、有道和小牛等翻译API来实现跨语言沟通的功能。这些翻译接口提供了免费的机器翻译服务,使得开发者可以轻松地集成到自己的应用程序中。 1. **C#基础**: - C#是...
Android调用google翻译的javascript实现翻译单词功能,在线翻译,用户输入单词,就可。 WebSettings webSettings = wv.getSettings();//取得WebSettings webSettings.setJavaScriptEnabled(true);//设定可执行...
### JavaScript 实现网页内容通过Google翻译接口转换为多种语言 ...未来,随着技术的发展,还可以考虑使用更先进的方法,比如前端框架中的国际化插件或者直接调用Google翻译API来进一步提升用户体验和翻译质量。
标题"java中英文翻译---调用Google翻译API"明确指出,我们要学习的是如何在Java程序中调用Google的翻译服务。 Google翻译API是Google提供的一个强大工具,允许开发者通过编程方式在多种语言之间进行翻译。在Java...
谷歌翻译是Google提供的一项在线语言翻译服务,它提供了API供开发者在自己的应用程序中集成翻译功能。通过调用谷歌翻译API,开发者可以实现文本、甚至整个文档的自动翻译。接口通常支持多种编程语言,如Python、Java...
在本文中,我们将深入探讨如何使用jQuery...要实现jQuery调用Google翻译,我们需要以下步骤: 1. **引入jQuery库**:在HTML文件中,通过`<script>`标签引入jQuery库。确保其在调用自定义函数之前加载完成。 ```html ...
2. **Web服务调用**:如果翻译服务是基于HTTP/HTTPS的Web API,如Google Translate或Microsoft Azure Translator,LabVIEW可以使用HTTP请求VIs(例如,`HTTP POST.vi`或`HTTP GET.vi`)来发送JSON或其他格式的请求,...
谷歌翻译是一个在线服务,能够实时翻译多种语言,它的API可以被各种编程语言调用,包括C#。 要实现C#谷歌翻译,我们需要以下步骤: 1. **获取API密钥**: 谷歌翻译API是付费服务,但有免费的额度。首先,你需要在...