DotNet笔记

兴趣是最好的老师。
posts - 404, comments - 1433, trackbacks - 46, articles - 1
   :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

C#中借用Google翻译

Posted on 2011-06-06 18:48 小y 阅读(1120) 评论(6) 编辑 收藏

最近项目中有大量中译英的操作,搜集了一下大概还有2000多个汉语未翻译,

如果手工翻译费时费劲,于是程序员的懒惰激发了程序员的创造力,做了一个自动翻译接口,批量翻译只是一刹那的事情。

源码如下:

publicstaticstring GoogleTranslate(string sourceWord,string fromLanguage,string toLanguage)
{
/*
调用:
http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=zh-CN|en&q=中国人是好人
返回的json格式如下:
{"responseData": {"translatedText":"Chinese people are good people"}, "responseDetails": null, "responseStatus": 200}
*/
string serverUrl =@"http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair="
+ fromLanguage +"|"+ toLanguage +"&q="+HttpUtility.UrlEncode(sourceWord);
WebRequest request
= WebRequest.Create(serverUrl);
WebResponse response
= request.GetResponse();
string resJson =new StreamReader(response.GetResponseStream(), Encoding.UTF8).ReadToEnd();
int textIndex = resJson.IndexOf("translatedText")+17;
int textLen=resJson.IndexOf("\"",textIndex)-textIndex;
return resJson.Substring(textIndex, textLen);
}

调用如下:

txtMsg.Text = GoogleTranslate(txtMsg.Text,"zh-CN","en");

如有用得上的,请顶一下。

---------------------------------------------------------------------

Feedback

#1楼  回复 引用 查看   

2011-06-06 19:19 by nothing better      
被翻译的文本过长就会报错。。。 希望楼主改进一下。。

#2楼  回复 引用 查看   

2011-06-07 11:38 by Mr_wen      
楼主 HttpUtility.UrlEncode(sourceWord);
解释下啊、

#3楼  回复 引用 查看   

2011-06-16 20:38 by zhaozengtao      
呵呵 加油啊

#4楼[楼主]  回复 引用 查看   

2011-06-27 22:41 by 小y      
@Mr_wen
为防止中文乱码

#5楼  回复 引用 查看   

2011-09-04 10:51 by 祁连雪狼      
厉害,厉害

#6楼  回复 引用 查看   

2011-09-06 18:00 by 天罡      
{"responseData": null, "responseDetails": "Suspected Terms of Service Abuse. Please see http://code.google.com/apis/errors", "responseStatus": 403}

全部返回这个,难道被封了?