java 调用google翻译
来源:互联网 发布:淘宝总客服投诉电话 编辑:程序博客网 时间:2024/06/13 23:35
创建包translate,在这个包下创建类及emum如下:
package 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;
}
}
在这个包下创建接口如下:
package 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 ;
}
三、创建继承接口的类
package translate;
import org.apache.velocity.runtime.directive.Define;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.omg.CORBA.portable.ApplicationException;
/**
* 使用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.cn")
.data("sl", srcLang)
.data("ie", "UTF-8")
.data("oe", "UTF-8")
.data("text", text)
.data("tl", targetLang)
//.data("ie", Define.getEncoding())//.getEncoding())
.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) {
//throw new ApplicationException("Google不支持的语言") ;
}
}
public static void main(String[] args) {
TranslateUtil translate = new TranslateToGoogle() ;
try {
System.out.println(translate.translate("把那七条加了事件的流程名称发给我一下,你就去龙浩电脑上把他写在记事本里面的发给我就可以了", "zh-TW")) ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
然后运行上面类的main函数,打印如下:
把那七條加了事件的流程名稱發給我一下,你就去龍浩電腦上把他寫在記事本里面的發給我就可以了
- java 调用google翻译
- Java调用Google的翻译实例
- 调用google全文翻译
- 调用google翻译
- 调用GOOGLE翻译
- python3调用Google翻译
- python3.2调用google翻译
- 调用Google翻译 语音接口
- python汉译英-调用Google翻译
- 调用Google翻译 语音接口
- Java调用Bing翻译
- 小玩意系列:Python调用Google翻译
- MAC - 使用 Alfred 调用 Google 翻译
- python 调用Google Translate API进行翻译
- python 调用Google Translate API 翻译
- 最新C#调用Google即时翻译
- webview调用google翻译翻译网页的方法
- Google翻译API(B/S调用和C/S调用)
- jquery自定义校验
- 基于c#的工控软件版本v1.03_11.25(附源代码工程下载地址)
- mysql Too many connections
- Android混淆、反编译以及反破解的简单回顾
- Spring配置文件applicationContext.xml快速入门
- java 调用google翻译
- android 经典特效 aoyou 首页
- 简单工厂模式
- JavaScript面试时候的坑洼沟洄——逗号、冒号与括号
- android 隐藏view
- CocoaPods是什么?
- 有引用外部jar包时(J2SE)生成jar文件
- C++中友元(友元函数和友元类)的用法和功能
- Ubuntu下的mysql安装