google翻译使用demo

来源:互联网 发布:数控编程中各代码含义 编辑:程序博客网 时间:2024/06/11 21:17
package com.google.fanyi;/** * Copyright (c) blackbear, Inc All Rights Reserved. */import java.io.InputStream;import java.net.URLEncoder;import java.text.MessageFormat;import org.apache.commons.io.IOUtils;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import com.http.HttpClient;/** * TranslateUtil *  * <pre>翻譯工具 * PS: 透過google translate * </pre> *  * @author catty * @version 1.0, Created on 2011/9/2 */public class TranslateUtil {protected static final String URL_TEMPLATE = "http://translate.google.com/?langpair={0}&text={1}";protected static final String ID_RESULTBOX = "result_box";protected static final String ENCODING = "UTF-8";protected static final String AUTO = "auto"; // google自動判斷來源語系protected static final String TAIWAN = "zh-TW"; // 繁中protected static final String CHINA = "zh-CN"; // 簡中protected static final String ENGLISH = "en"; // 英protected static final String JAPAN = "ja"; // 日/** * <pre>Google翻譯 * PS: 交由google自動判斷來源語系 * </pre> *  * @param text * @param target_lang 目標語系 * @return * @throws Exception */public static String translate(final String text, final String target_lang) throws Exception {return translate(text, AUTO, target_lang);}/** * <pre>Google翻譯</pre> *  * @param text * @param src_lang 來源語系 * @param target_lang 目標語系 * @return * @throws Exception */public static String translate(final String text, final String src_lang, final String target_lang)throws Exception {InputStream is = null;Document doc = null;Element ele = null;try {// create URL stringString url = MessageFormat.format(URL_TEMPLATE,URLEncoder.encode(src_lang + "|" + target_lang, ENCODING),URLEncoder.encode(text, ENCODING));// connect & download htmlis = HttpClientUtil.downloadAsStream(url);// parse html by Jsoupdoc = Jsoup.parse(is, ENCODING, "");ele = doc.getElementById(ID_RESULTBOX);String result = ele.text();return result;} finally {IOUtils.closeQuietly(is);is = null;//doc = null;//ele = null;}}/** * <pre>Google翻譯: 簡中-->繁中</pre> *  * @param text * @return * @throws Exception */public static String cn2tw(final String text) throws Exception {return translate(text, CHINA, TAIWAN);}/** * <pre>Google翻譯: 簡中-->繁中</pre> *  * @param text * @return * @throws Exception */public static String cn2en(final String text) throws Exception {return translate(text, CHINA, ENGLISH);}/** * <pre>Google翻譯: 繁中-->簡中</pre> *  * @param text * @return * @throws Exception */public static String tw2cn(final String text) throws Exception {return translate(text, TAIWAN, CHINA);}/** * <pre>Google翻譯: 英文-->繁中</pre> *  * @param text * @return * @throws Exception */public static String en2tw(final String text) throws Exception {return translate(text, ENGLISH, TAIWAN);}/** * <pre>Google翻譯: 繁中-->英文</pre> *  * @param text * @return * @throws Exception */public static String tw2en(final String text) throws Exception {return translate(text, TAIWAN, ENGLISH);}/** * <pre>Google翻譯: 日文-->繁中</pre> *  * @param text * @return * @throws Exception */public static String jp2tw(final String text) throws Exception {return translate(text, JAPAN, TAIWAN);}/** * <pre>Google翻譯: 繁中-->日</pre> *  * @param text * @return * @throws Exception */public static String tw2jp(final String text) throws Exception {return translate(text, TAIWAN, JAPAN);}public static void main(String[] args) {String msg = null;try {msg = cn2en("你好吗");} catch (Exception e) {e.printStackTrace();}System.out.println(msg);}}


/** * Copyright (c) Blackbear, Inc All Rights Reserved. */package com.google.fanyi;import java.io.BufferedInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import java.util.Map;import org.apache.commons.io.IOUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpRequestBase;import org.apache.http.conn.scheme.PlainSocketFactory;import org.apache.http.conn.scheme.Scheme;import org.apache.http.conn.scheme.SchemeRegistry;import org.apache.http.conn.ssl.SSLSocketFactory;import org.apache.http.entity.BufferedHttpEntity;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;import org.apache.http.params.BasicHttpParams;/** * PostUtil.java *  * @author catty * @version 1.0, Created on 2008/2/20 */public class HttpClientUtil {protected static Log log = LogFactory.getLog(HttpClientUtil.class);protected static HttpClient httpclient = null;protected static int maxTotal = 200;protected static int maxPerRoute = 20;protected static String userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7";static {if (httpclient == null) {// ~~~~~~~~~~~~~~~~~~~~// create httpclient// ~~~~~~~~~~~~~~~~~~~~SchemeRegistry reg = new SchemeRegistry();reg.register(new Scheme("http", 80, PlainSocketFactory.getSocketFactory()));reg.register(new Scheme("https", 443, SSLSocketFactory.getSocketFactory()));ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(reg);cm.setMaxTotal(maxTotal);cm.setDefaultMaxPerRoute(maxPerRoute);httpclient = new DefaultHttpClient(cm);}}/** * <pre>涓嬭級寰屽洖鍌矷nputstream</pre> *  * @param url * @return * @throws Exception */public static InputStream downloadAsStream(String url) throws Exception {InputStream is = (InputStream) download(url, null, null, false);return is;}/** * <pre>涓嬭級寰屽劜瀛樺埌File</pre> *  * @param url * @param saveFile * @throws Exception */public static void download(String url, File saveFile) throws Exception {download(url, saveFile, null, false);}/** * <pre>涓嬭級</pre> *  * @param url * @param saveFile * @param params * @param isPost * @return 濡傛灉saveFile==null鍓囧洖鍌砳nputstream, 鍚﹀墖鍥炲偝saveFile * @throws Exception */public static Object download(final String url, final File saveFile, final Map<String, String> params,final boolean isPost) throws Exception {boolean saveToFile = saveFile != null;// check dir exist ??if (saveToFile && saveFile.getParentFile().exists() == false) {saveFile.getParentFile().mkdirs();}Exception err = null;HttpRequestBase request = null;HttpResponse response = null;HttpEntity entity = null;FileOutputStream fos = null;Object result = null;try {// create requestif (isPost) {request = new HttpPost(url);} else {request = new HttpGet(url);}// add header & paramsaddHeaderAndParams(request, params);// connectresponse = httpclient.execute(request);entity = response.getEntity();entity = new BufferedHttpEntity(entity);// get resultif (saveToFile) {// save to diskfos = new FileOutputStream(saveFile);IOUtils.copy(entity.getContent(), fos);result = saveFile;} else { // warp to inpustreamresult = new BufferedInputStream(entity.getContent());}} catch (Exception e) {err = e;} finally {// closeIOUtils.closeQuietly(fos);// clearrequest = null;response = null;entity = null;if (err != null) {throw err;}return result;}}protected static void addHeaderAndParams(final HttpRequestBase request, final Map<String, String> params) {// add default headerrequest.addHeader("User-Agent", userAgent);// add paramsif (params != null) {// map --> HttpParamsBasicHttpParams myParams = new BasicHttpParams();for (String key : params.keySet()) {myParams.setParameter(key, params.get(key));}request.setParams(myParams);}}public static HttpClient getHttpclient() {return httpclient;}public static void setHttpclient(HttpClient httpclient) {HttpClientUtil.httpclient = httpclient;}public static int getMaxTotal() {return maxTotal;}public static void setMaxTotal(int maxTotal) {HttpClientUtil.maxTotal = maxTotal;}public static int getMaxPerRoute() {return maxPerRoute;}public static void setMaxPerRoute(int maxPerRoute) {HttpClientUtil.maxPerRoute = maxPerRoute;}public static String getUserAgent() {return userAgent;}public static void setUserAgent(String userAgent) {HttpClientUtil.userAgent = userAgent;}}

原创粉丝点击