http://www.crifan.com/teach_you_how_to_find_free_google_translate_api/

(还没试过有时间试下.....)

今日,在想要在C#中,利用google翻译,实现把中文翻译为英文。

然后就去找,对应翻译的url和参数是如何使用的。

参考之前自己的的BlogsToWordpress中的Python版本的crifanLib:crifanLib.py中的translateString,然后去写代码,结果竟然发现,无法成功获得对应的返回的html,因此也就无法找到翻译后的结果了。

所以,就打算手动自己去找当前可用的google翻译。


1.找到网页版的google翻译,首地址是:

http://translate.google.cn/

然后使用之前在:

【总结】浏览器中的开发人员工具(IE9的F12和Chrome的Ctrl+Shift+I)-网页分析的利器

中所介绍的IE9的F12,去调试。

然后设置好

源语言:中文(简体)

目标语言:英文

然后再随便输入一串汉字,比如:

他们是这样说的

然后可以看到结果为:

其中,此处是自动实时翻译,所以没有点击翻译按钮,就可以看到翻译的结果:

They say

了。

2. 然后接下来去找,到底此翻译的请求,是哪个地址。

而对于IE9的F12中,抓到很多url,内容繁多,也不容易找到到底哪个是我们想要的。

但是我们现在已经知道了翻译结果为:

They say

所以,就可以通过F12自带的搜索功能,去找到对应的url了:

如上,再点击Back to summary view,就可以看到是这个地址了:

对应的地址,在Detail view中,拷贝出来就是:

http://translate.google.cn/translate_a/t?client=t&text=%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84&hl=zh-CN&sl=zh-CN&tl=en&ie=UTF-8&oe=UTF-8&multires=1&otf=1&pc=1&it=srcd_gms.1378&ssel=4&tsel=6&sc=1

然后将其分解为:

http://translate.google.cn/translate_a/t?
client=t&
text=%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84&
hl=zh-CN&
sl=zh-CN&
tl=en&
ie=UTF-8&
oe=UTF-8&
multires=1&
otf=1&
pc=1&
it=srcd_gms.1378&
ssel=4&
tsel=6&
sc=1

3. 由此信息,便可以去写代码了。

经过一番代码调试,最后搞定:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//-----------------------------------------------------------------------------
//translate strToTranslate from fromLanguage to toLanguage
//return the translated string
//return empty string if error
//some frequently used language abbrv:
//Chinese Simplified:   zh-CN
//Chinese Traditional:  zh-TW
//English:              en
//German:               de
//Japanese:             ja
//Korean:               ko
//French:               fr   
//more can be found at:
//http://code.google.com/intl/ru/apis/language/translate/v2/using_rest.html#language-params
public string translateString( string strToTranslate, string fromLanguage, string toLanguage)
{
     string translatedStr = "" ;
     string transRetHtml = "" ;
     following refer:http://python.u85.us/viewnews-335.html
     //string googleTranslateUrl = "http://translate.google.cn/translate_t";
     //Dictionary<string, string> postDict = new Dictionary<string, string>();
     //postDict.Add("hl", "zh-CN");
     //postDict.Add("ie", "UTF-8");
     //postDict.Add("text", strToTranslate);
     //postDict.Add("langpair", fromLanguage + "|" + toLanguage);
     //const string googleTransHtmlCharset = "UTF-8";
     //string transRetHtml = getUrlRespHtml(googleTranslateUrl, null,googleTransHtmlCharset, postDict);
     http://translate.google.cn/#zh-CN/en/%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84
     //string googleTransBaseUrl = "http://translate.google.cn/#";
     //strToTranslate = "他们是这样说的";
     //string encodedStr = HttpUtility.UrlEncode(strToTranslate);
     //string googleTransUrl = googleTransBaseUrl + fromLanguage + "/" + toLanguage + "/" + encodedStr;
     //string transRetHtml = getUrlRespHtml(googleTransUrl);
     //http://translate.google.cn/translate_a/t?client=t&text=%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84&hl=zh-CN&sl=zh-CN&tl=en&ie=UTF-8&oe=UTF-8&multires=1&ssel=0&tsel=0&sc=1
     //strToTranslate = "他们是这样说的";
     string encodedStr = HttpUtility.UrlEncode(strToTranslate);
     string googleTransBaseUrl = "http://translate.google.cn/translate_a/t?" ;
     string googleTransUrl = googleTransBaseUrl;
     googleTransUrl  += "&client=" + "t" ;
     googleTransUrl += "&text=" + encodedStr;
     googleTransUrl += "&hl=" + "zh-CN" ;
     googleTransUrl += "&sl=" + fromLanguage; // source   language
     googleTransUrl += "&tl=" + toLanguage;  // to       language
     googleTransUrl += "&ie=" + "UTF-8" ;     // input    encode
     googleTransUrl += "&oe=" + "UTF-8" ;     // output   encode
     try
     {
         transRetHtml = getUrlRespHtml(googleTransUrl);
         //[[["They say","他们是这样说的","","Tāmen shì zhèyàng shuō de"]],,"zh-CN",,[["They",[5],0,0,1000,0,1,0],["say",[6],1,0,1000,1,2,0]],[["他们 是",5,[["They",1000,0,0],["they are",0,0,0],["they were",0,0,0],["that they are",0,0,0],["they are the",0,0,0]],[[0,3]],"他们是这样说的"],["这样 说",6,[["say",1000,1,0],["said",0,1,0],["say so",0,1,0],["says",0,1,0],["say this",0,1,0]],[[3,6]],""]],,,[["zh-CN"]],1]
         
         if (extractSingleStr( @"\[\[\[""(.+?)"","".+?""," , transRetHtml, out translatedStr))
         {
             //extrac out:They say
         }
     }
     catch
     {
         // if pass some special string, such as "彭德怀", then will occur 500 error
         // here tmp not process the error, just omit it here
     }
     
     return translatedStr;
}
public string transZhcnToEn( string strToTranslate)
{
     return translateString(strToTranslate, "zh-CN" , "en" );
}

【总结】

此处通过自己调试,找到的google翻译的api为:

基地址:

http://translate.google.cn/translate_a/t?

一些固定参数:

client=t

hl=zh-CN:表示本地语言是zh-CN

需要自己设置的参数:

text=%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84: 需要翻译的文字,被encode后的值,%E4%BB%96%E4%BB%AC%E6%98%AF%E8%BF%99%E6%A0%B7%E8%AF%B4%E7%9A%84对应的原文字是:他们是这样说的。

sl=zh-CN:source language为zh-CN,即需要翻译的文字是中文简体

tl=en:to language,目标语言为en,即要翻译为英语

ie=UTF-8:input encoding,输入的文字的编码为UTF-8

oe=UTF-8:output encoding,输出,翻译后,的文字的编码为UTF-8

其他可有可无的参数:

multires=1

otf=1

pc=1

it=srcd_gms.1378

ssel=4

tsel=6

sc=1

其中,最最核心的很明显是sl和tl,相对次要的是ie和oe。

自己根据自己的需要,设置text,sl,tl,(和ie和oe),提交对应的请求,即可获得如下的返回内容:

[[["They say","他们是这样说的","","Tāmen shì zhèyàng shuō de"]],,"zh-CN",,[["They",[5],0,0,1000,0,1,0],["say",[6],1,0,1000,1,2,0]],[["他们 是",5,[["They",1000,0,0],["they are",0,0,0],["they were",0,0,0],["that they are",0,0,0],["they are the",0,0,0]],[[0,3]],"他们是这样说的"],["这样 说",6,[["say",1000,1,0],["said",0,1,0],["say so",0,1,0],["says",0,1,0],["say this",0,1,0]],[[3,6]],""]],,,[["zh-CN"]],1]

提取其中的最开始的They say,即可实现翻译的目的了。

教你找到免费的Google Translate API(谷歌翻译接口)+C#版的Google翻译函数相关推荐

  1. Google Map Api 谷歌地图接口

    一:基本知识: 1. 使用谷歌地图 API 的第一步就是要注册一个 API 密钥,需要注重一下两点: 1.假如使用 API 的页面还没有发布,只是在本地调试,可以不用密钥,随便用个字符串代替就可以了. ...

  2. python调用google translate API(谷歌翻译) 的使用方法-手动构造HTTP 请求模式

    这个页面中手动的填写请求参数之后,包括目标语言,源语言,输入的字符,目标格式等,可以得到翻译输出,如下图所示: 可以看到本质上是向服务器发起一个post请求,然后服务器在response中将翻译结果返 ...

  3. Goslate: Free Google Translate API

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  4. python 调用Google Translate API进行翻译

    调用Google 翻译API进行翻译 #!/usr/bin/python #coding: UTF-8 import sys reload(sys) sys.setdefaultencoding('u ...

  5. Google Translate API

    Google Translate API 近期在做的一个任务,但是网上的资料甚少,经过了几番波折,终于弄好了.实现过程很简单,拿出来共享一下,免得大家像我一样找了半天. 谷歌翻译升级到2.0后变为收费 ...

  6. 使用Google Elevation API获取海拔高度(java版)

    Google Elevation API提供了根据某地经纬度获取该地点海拔高度的接口.开发者可以调用该API获取地点的海拔信息.使用Google Elevation API之前,用户首先需要注册为Go ...

  7. python 调用Google Translate API 翻译

    1.安装相关模块 pip install --upgrade google-cloud 或者 pip install --upgrade google-cloud-translate 2.调用api进 ...

  8. 如何用google translate API接口

    rootsoso 最近要做一个要用到翻译功能的插件,很自然就想到了利用 google translate 的强大,但是 google 之开放了 ajax 的 api ,没有开放语言的接口.这也不难,通 ...

  9. python调用谷歌翻译英文文献pdf_Python 调用 Google Translate API 批量翻译文章

    有时候批量翻译中文文章,批量变成各个小语种的语言,手动的粘贴复制是非常慢的.需要调用翻译 API 接口,综合对比市面上的各个翻译 API,个人觉得 Google 的翻译 API 最为好用和准确. 下面 ...

最新文章

  1. C/C++快速读写磁盘数据的方法-块读取/异步/优化分析算法/内存文件映射的原理和使用
  2. flowable 启动流程到完成所有任务之间的数据库变化
  3. 数据结构实习-迷宫(基于Qt实现)
  4. matlab pso 信号压缩重构_肇庆永磁变频空气压缩机研发,专业是我们品质服务
  5. matlab2c使用c++实现matlab函数系列教程-disp函数
  6. testng 组_TestNG组
  7. shell中的基础命令
  8. Hologres数据迁移之holo-shipper
  9. windows驱动 - IRQL
  10. R语言 霍尔特指数平滑法(Holt)
  11. 南充一中2021成绩查询高考,2021年南充一中升学率高不高?
  12. docker部署html页面,Docker 案例: 在容器中部署静态网站
  13. chrome浏览器安装redux-devtools调试工具
  14. 贝叶斯视角下的机器学习
  15. 移动echarts地图省份名称的位置
  16. 一键修改windows远程桌面3389端口
  17. 利用java输出一个月的日历表
  18. 皮尔森相关性系数的计算python代码(四)(热力图版)
  19. Hotspot 垃圾回收之ReferenceProcessor(二) 源码解析
  20. 2023年PMP 续证的费用和流程最全介绍

热门文章

  1. 全选、删除、撤回、剪切、复制、粘贴、永久性删除、新建文件夹、启动任务管理器、退出的快捷键
  2. 动态载入DLL所需要的三个函数详解(LoadLibrary,GetProcAddress,FreeLibrary)
  3. @Retention(RetentionPolicy.RUNTIME)
  4. Quartz简介及初始化
  5. ant调用cmd命令行
  6. 记录win10安装多个版本cuda与cudnn+切换使用+发现的一些有趣现象
  7. 加密资产走过十年,正是区块链技术觉醒的开始
  8. LoadRunner 回放出错
  9. 如何用快慢指针在链表找到中间点
  10. 李宏毅深度学习_homework01