`
fackyou200
  • 浏览: 309527 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

在线调用google翻译

    博客分类:
  • java
 
阅读更多

      转:http://mylfd.iteye.com/blog/1965585 

 

      很是无奈,google翻译收费了,像我们一般人就用不起了.只能另想办法了.上一篇介绍了使用bing也是解决的办法之一,但是不可否认还是google翻译的更加理想.

       首先下载项目所需要的jar包:jsoup-*.jar,commons-io-*.jar,commons-logging-*.jar.为了提高可扩展性我使用了接口,看代码:

Java代码  收藏代码
  1. package gd.hz.lily.util.translate;  
  2.   
  3. /** 
  4.  * 提供系统的语言翻译功能 
  5.  * @author lfd 
  6.  * 2013-10-01 
  7.  */  
  8. public interface TranslateUtil {  
  9.       
  10.     /** 
  11.      * http请求的类型(如"text/html" , "text/plain") 
  12.      * @param type 请求的类型 
  13.      */  
  14.     public void setContentType(String type) ;  
  15.       
  16.     /** 
  17.      * 翻译语言(自动识别源语言) 
  18.      * @param text 翻译的内容 
  19.      * @param srcLang 源语言 
  20.      * @param targetLang 目标语言 
  21.      * @return 目标语言内容 
  22.      */  
  23.     public String translate(final String text, final String targetLang) throws Exception ;  
  24.       
  25.     /** 
  26.      * 翻译语言(自动识别源语言) 
  27.      * @param texts 翻译的内容数组 
  28.      * @param targetLang 目标语言 
  29.      * @return 目标语言内容 
  30.      */  
  31.     public String[] translate(final String[] texts, final String targetLang) throws Exception ;  
  32.       
  33.     /** 
  34.      * 翻译语言 
  35.      * @param text 翻译的内容 
  36.      * @param srcLang 源语言 
  37.      * @param targetLang 目标语言 
  38.      * @return 目标语言内容 
  39.      */  
  40.     public String translate(final String text, final String srcLang, final String targetLang) throws Exception ;  
  41.       
  42.     /** 
  43.      * 翻译语言 
  44.      * @param texts 翻译的内容数组 
  45.      * @param srcLang 源语言 
  46.      * @param targetLang 目标语言 
  47.      * @return 目标语言内容 
  48.      */  
  49.     public String[] translate(final String[] texts, final String srcLang, final String targetLang) throws Exception ;  
  50. }  

 

在这里我提供了一个枚举类,列出google所支持的翻译语言.

 

Java代码  收藏代码
  1. package gd.hz.lily.util.translate;  
  2.   
  3. /** 
  4.  * 谷歌翻译API定义的语言信息。 
  5.  * @author lfd 改 
  6.  * 2013-10-01 
  7.  */  
  8. public enum GoogleLanguage {  
  9.     AUTO_DETECT(""),  
  10.     AFRIKAANS("af"),  
  11.     ALBANIAN("sq"),  
  12.     AMHARIC("am"),  
  13.     ARABIC("ar"),  
  14.     ARMENIAN("hy"),  
  15.     AZERBAIJANI("az"),  
  16.     BASQUE("eu"),  
  17.     BELARUSIAN("be"),  
  18.     BENGALI("bn"),  
  19.     BIHARI("bh"),  
  20.     BULGARIAN("bg"),  
  21.     BURMESE("my"),  
  22.     CATALAN("ca"),  
  23.     CHEROKEE("chr"),  
  24.     CHINESE("zh"),  
  25.     CHINESE_SIMPLIFIED("zh-CN"),  
  26.     CHINESE_TRADITIONAL("zh-TW"),  
  27.     CROATIAN("hr"),  
  28.     CZECH("cs"),  
  29.     DANISH("da"),  
  30.     DHIVEHI("dv"),  
  31.     DUTCH("nl"),  
  32.     ENGLISH("en"),  
  33.     ESPERANTO("eo"),  
  34.     ESTONIAN("et"),  
  35.     FILIPINO("tl"),  
  36.     FINNISH("fi"),  
  37.     FRENCH("fr"),  
  38.     GALICIAN("gl"),  
  39.     GEORGIAN("ka"),  
  40.     GERMAN("de"),  
  41.     GREEK("el"),  
  42.     GUARANI("gn"),  
  43.     GUJARATI("gu"),  
  44.     HEBREW("iw"),  
  45.     HINDI("hi"),  
  46.     HUNGARIAN("hu"),  
  47.     ICELANDIC("is"),  
  48.     INDONESIAN("id"),  
  49.     INUKTITUT("iu"),  
  50.     IRISH("ga"),  
  51.     ITALIAN("it"),  
  52.     JAPANESE("ja"),  
  53.     KANNADA("kn"),  
  54.     KAZAKH("kk"),  
  55.     KHMER("km"),  
  56.     KOREAN("ko"),  
  57.     KURDISH("ku"),  
  58.     KYRGYZ("ky"),  
  59.     LAOTHIAN("lo"),  
  60.     LATVIAN("lv"),  
  61.     LITHUANIAN("lt"),  
  62.     MACEDONIAN("mk"),  
  63.     MALAY("ms"),  
  64.     MALAYALAM("ml"),  
  65.     MALTESE("mt"),  
  66.     MARATHI("mr"),  
  67.     MONGOLIAN("mn"),  
  68.     NEPALI("ne"),  
  69.     NORWEGIAN("no"),  
  70.     ORIYA("or"),  
  71.     PASHTO("ps"),  
  72.     PERSIAN("fa"),  
  73.     POLISH("pl"),  
  74.     PORTUGUESE("pt"),  
  75.     PUNJABI("pa"),  
  76.     ROMANIAN("ro"),  
  77.     RUSSIAN("ru"),  
  78.     SANSKRIT("sa"),  
  79.     SERBIAN("sr"),  
  80.     SINDHI("sd"),  
  81.     SINHALESE("si"),  
  82.     SLOVAK("sk"),  
  83.     SLOVENIAN("sl"),  
  84.     SPANISH("es"),  
  85.     SWAHILI("sw"),  
  86.     SWEDISH("sv"),  
  87.     TAJIK("tg"),  
  88.     TAMIL("ta"),  
  89.     TAGALOG("tl"),  
  90.     TELUGU("te"),  
  91.     THAI("th"),  
  92.     TIBETAN("bo"),  
  93.     TURKISH("tr"),  
  94.     UKRANIAN("uk"),  
  95.     URDU("ur"),  
  96.     UZBEK("uz"),  
  97.     UIGHUR("ug"),  
  98.     VIETNAMESE("vi"),  
  99.     WELSH("cy"),  
  100.     YIDDISH("yi");  
  101.       
  102.     /** 
  103.      * 谷歌的当前语言的字符串表示形式。 
  104.      */  
  105.     private final String language;  
  106.       
  107.     /** 
  108.      * 构造函数 
  109.      * @param 语言标识符。 
  110.      */  
  111.     private GoogleLanguage(final String pLanguage) {  
  112.         language = pLanguage;  
  113.     }  
  114.       
  115.     public static GoogleLanguage fromString(final String pLanguage) {  
  116.         for (GoogleLanguage lang : values()) {  
  117.             if (pLanguage.equals(lang.toString())) {  
  118.                 return lang ;  
  119.             }  
  120.         }  
  121.         return null;  
  122.     }  
  123.       
  124.     /** 
  125.      * 返回的字符串表示这种语言。 
  126.      * @return 这种语言的字符串表示形式。 
  127.      */  
  128.     @Override  
  129.     public String toString() {  
  130.         return language;  
  131.     }  
  132. }  

 接下来看一下TranslateUtil的实现类TranslateToGoogle

Java代码  收藏代码
  1. package gd.hz.lily.util.translate;  
  2.   
  3. import org.jsoup.Jsoup;  
  4. import org.jsoup.nodes.Document;  
  5. import org.jsoup.nodes.Element;  
  6.   
  7. /** 
  8.  * 使用google进行翻译 
  9.  * @author lfd  
  10.  * 2013-10-01 
  11.  */  
  12. public class TranslateToGoogle implements TranslateUtil {  
  13.       
  14.     private final String ID_RESULTBOX = "result_box";  
  15.       
  16.     private String type = "" ;  
  17.   
  18.     public void setContentType(String type) {  
  19.         this.type = type ;  
  20.     }  
  21.   
  22.     public String translate(String text, String targetLang) throws Exception {  
  23.         return translate(text, "", targetLang) ;  
  24.     }  
  25.   
  26.     public String[] translate(String[] texts, String targetLang)  
  27.             throws Exception {  
  28.         return translate(texts, "", targetLang) ;  
  29.     }  
  30.   
  31.     public String translate(String text, String srcLang, String targetLang)  
  32.             throws Exception {  
  33.         return execute(text, srcLang, targetLang) ;  
  34.     }  
  35.   
  36.     public String[] translate(String[] texts, String srcLang, String targetLang)  
  37.             throws Exception {  
  38.           
  39.         StringBuilder content = new StringBuilder() ;  
  40.         int size = texts.length ;  
  41.         for(int i = 0 ; i < size ; i++) {  
  42.             if(i < size-1) {  
  43.                 content.append(texts[i]).append("{*}") ;  
  44.             } else {  
  45.                 content.append(texts[i]) ;  
  46.             }  
  47.         }  
  48.         String[] temps = execute(content.toString(),srcLang , targetLang).split("\\{\\*\\}") ;  
  49.         size = temps.length ;  
  50.         //去除左右空白字符  
  51.         for (int i = 0; i < size; i++) {  
  52.             temps[i] = temps[i].trim() ;  
  53.         }  
  54.         return temps ;  
  55.     }  
  56.       
  57.     /** 
  58.      * 发送翻译请求 
  59.      * @param text 要翻译的内容 
  60.      * @param srcLang 源语言 
  61.      * @param targetLang 目标语言 
  62.      * @return 目标语言 
  63.      * @throws Exception 翻译失败 
  64.      */  
  65.     private String execute(final String text, final String srcLang,  
  66.             final String targetLang) throws Exception {  
  67.         inspection(srcLang, targetLang) ;  
  68.         Document document = Jsoup.connect("http://translate.google.com.hk")  
  69.           .data("sl", srcLang)  
  70.           .data("ie""UTF-8")  
  71.           .data("oe""UTF-8")  
  72.           .data("text", text)  
  73.           .data("tl", targetLang)  
  74.           .data("ie""UTF-8")  
  75.           .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7")  
  76.           .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")  
  77.           .timeout(2000000)  
  78.           .post();  
  79.         Element element = document.getElementById(ID_RESULTBOX);  
  80.         return element.text() ;  
  81.     }  
  82.       
  83.     /** 
  84.      * 检查Google是否支持语言. 
  85.      */  
  86.     private void inspection(String srcLang, String targetLang) {  
  87.         if(!"".equals(this.type)) setContentType(type) ;  
  88.         if(GoogleLanguage.fromString(srcLang) == null || GoogleLanguage.fromString(targetLang) == null) {  
  89.             System.out.println("Google不支持的语言") ;        }  
  90.     }  
  91. }  

 

测试:

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.         TranslateUtil translate = new TranslateToGoogle() ;  
  3.         try {  
  4.             System.out.println(translate.translate("世界你好!""en")) ;  
  5.         } catch (Exception e) {  
  6.             e.printStackTrace();  
  7.         }  
  8.     }  

 这里需要注意,如果使用get请求是有字数限制的.

分享到:
评论

相关推荐

    java 调用 google 翻译工具类

    在Java编程中,调用Google翻译API可以帮助我们实现自动化翻译的功能,这在处理多语言文本或者构建跨语言应用时非常有用。本篇文章将详细介绍如何在Java中使用Google翻译API,并提供一个可直接运行的工具类示例。 ...

    C#版谷歌翻译-调用谷歌web翻译

    7. **安全与授权**:虽然描述中没有提及,但通常调用谷歌API都需要API密钥。确保在实际项目中遵循谷歌的API使用政策,并妥善处理API密钥,防止泄露。 8. **调试与测试**:使用Visual Studio(.sln文件表明项目是...

    基于Java调用谷歌翻译网络接口实现文章翻译功能.zip

    在本项目中,我们主要探讨如何使用Java编程语言来调用谷歌翻译(Google Translate)的网络接口,从而实现文章的翻译功能。这是一个典型的Web服务API集成应用,对于学习Java网络编程以及自然语言处理(NLP)技术具有...

    C#调用谷歌进行翻译

    在本文中,我们将深入探讨如何使用C#来调用谷歌的翻译API,实现中英文之间的自动翻译功能。 首先,我们需要了解谷歌翻译API的工作原理。谷歌翻译API提供了一种RESTful的服务接口,可以通过HTTP请求进行访问。这种...

    PowerShell调用Google翻译服务实现英译中翻译

    PowerShell调用Google翻译网站的服务,实现英译中翻译,控制台程序,输入英文内容,输出中文信息并复制到剪贴板中。

    易语言调用Google翻译

    易语言调用Google翻译源码,调用Google翻译,CreateThreadA,翻译,访问网络,取端口,取页面地址,取域名,CloseHandle,网络_Internet激活,网络_Internet建立连接,网络_Http创建请求,网络_Http发送请求,网络_Internet读文件...

    google翻译API Get/Post 调用

    谷歌翻译API是Google提供的一种强大的在线翻译服务接口,允许开发者在自己的应用程序中集成翻译功能。在使用谷歌翻译API时,可以采用GET或POST方法进行调用,这两种方式各有特点,适用于不同的场景。 首先,让我们...

    翻译软件-调用的谷歌翻译接口

    调用谷歌接口的,翻译小工具。

    易语言源码易语言调用Google翻译源码.rar

    易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar 易语言源码易语言调用Google翻译源码.rar ...

    谷歌google翻译客户端

    谷歌Google翻译客户端是一款基于谷歌翻译API开发的应用程序,旨在为用户提供方便快捷的多语言翻译服务。这个客户端通常由程序员使用编程语言如VB.NET构建,它实现了与谷歌翻译服务器的交互,能够读取并处理在线翻译...

    调用谷歌翻译类库

    C#可以调用的谷歌翻译类库,只实现了简体繁体和英文之间的互相翻译

    JAVA自动调用谷歌翻译接口实现txt文档翻译.zip

    在本项目中,"JAVA自动调用谷歌翻译接口实现txt文档翻译.zip" 是一个使用Java编程语言实现的项目,它允许开发者通过调用谷歌翻译(Google Translate)的API来自动翻译TXT格式的文档。这个项目可能包含了一个或者多个...

    C# 谷歌、百度、有道、小牛翻译接口调用

    在本主题中,我们关注的是如何利用C#调用谷歌、百度、有道和小牛等翻译API来实现跨语言沟通的功能。这些翻译接口提供了免费的机器翻译服务,使得开发者可以轻松地集成到自己的应用程序中。 1. **C#基础**: - C#是...

    Android 调用远程API实现在线翻译单词功能.rar

    Android调用google翻译的javascript实现翻译单词功能,在线翻译,用户输入单词,就可。  WebSettings webSettings = wv.getSettings();//取得WebSettings  webSettings.setJavaScriptEnabled(true);//设定可执行...

    js利用google翻译接口把网页翻译成各国语言

    ### JavaScript 实现网页内容通过Google翻译接口转换为多种语言 ...未来,随着技术的发展,还可以考虑使用更先进的方法,比如前端框架中的国际化插件或者直接调用Google翻译API来进一步提升用户体验和翻译质量。

    java中英文翻译---调用Google翻译API

    标题"java中英文翻译---调用Google翻译API"明确指出,我们要学习的是如何在Java程序中调用Google的翻译服务。 Google翻译API是Google提供的一个强大工具,允许开发者通过编程方式在多种语言之间进行翻译。在Java...

    谷歌翻译接口调用、数据库字段翻译助手

    谷歌翻译是Google提供的一项在线语言翻译服务,它提供了API供开发者在自己的应用程序中集成翻译功能。通过调用谷歌翻译API,开发者可以实现文本、甚至整个文档的自动翻译。接口通常支持多种编程语言,如Python、Java...

    jQuery-Translator调用Google翻译实例及源码【译】

    在本文中,我们将深入探讨如何使用jQuery...要实现jQuery调用Google翻译,我们需要以下步骤: 1. **引入jQuery库**:在HTML文件中,通过`&lt;script&gt;`标签引入jQuery库。确保其在调用自定义函数之前加载完成。 ```html ...

    LabVIEWLabview调用翻译助手.rar

    2. **Web服务调用**:如果翻译服务是基于HTTP/HTTPS的Web API,如Google Translate或Microsoft Azure Translator,LabVIEW可以使用HTTP请求VIs(例如,`HTTP POST.vi`或`HTTP GET.vi`)来发送JSON或其他格式的请求,...

    C#谷歌翻译

    谷歌翻译是一个在线服务,能够实时翻译多种语言,它的API可以被各种编程语言调用,包括C#。 要实现C#谷歌翻译,我们需要以下步骤: 1. **获取API密钥**: 谷歌翻译API是付费服务,但有免费的额度。首先,你需要在...

Global site tag (gtag.js) - Google Analytics