Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET技巧

asp.net利用google的api做翻译

来源:中文源码网    浏览:157 次    日期:2024-05-01 06:11:01
【下载文档:  asp.net利用google的api做翻译.txt 】


asp.net利用google的api做翻译
说明:google提供了一组API可以给我们很方便的实现语言翻译功能,对于我们(中国人)而言,常用的是中文与英文的互译。大家英文好的可以看看GOOGLE的文档:http://code.google.com/apis/ajaxlanguage/documentation/reference.html#LangNameArray
这篇文章原创在:http://blog.moozi.net/archives/2008/10/16/the-realization-of-web-service-of-full-text-translations-based-on-google-ajax-language-api.aspx
需要使用到JSON.NET在http://www.codeplex.com/Json下载。
什么是序列化?可以看看我前面的文章。http://www.sosuo8.com/article/show.asp?id=2470 其实google已经提供了在JS下很方便的翻译功能,但有些情况下我们却需要在.net下操作。什么情况?采集中文文章并翻译成英文入库,或者是写一个C/S的软件。下面我将主要贴出代码,具体的可以看木子写的文章。其需要用: encodeURIComponent 传值。主要代码: 复制代码 代码如下:/// /// 替换翻译后的特殊字符,用于换行等 /// /// /// private string TransToHtml(string str) { string temp; temp = str.Replace("003c", "<"); temp = temp.Replace("003e",">"); return temp; } /// /// 使用WebRequest获取Google翻译后的内容 /// /// /// /// /// private string GetGoogleTransJSONString(string str, string strRequestLan, string strResultLan) { try { WebRequest request = HttpWebRequest.Create("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + str + "&langpair=" + strRequestLan + "%7C" + strResultLan); request.Credentials = CredentialCache.DefaultCredentials; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader reader = new StreamReader(stream); string responseFromServer = reader.ReadToEnd(); reader.Close(); stream.Close(); response.Close(); return responseFromServer; } catch (Exception ex) { return ex.Message; } } /// /// 翻译 /// /// 需要翻译的内容 /// 原文 /// 译文 /// public string Translate(string str, string strReuestLan, string strResultLan) { try { if (!string.IsNullOrEmpty(str)) { TranslateString transtr = (TranslateString)Newtonsoft.Json.JavaScriptConvert.DeserializeObject(GetGoogleTransJSONString(str, strReuestLan, strResultLan),typeof(TranslateString)); if (transtr.responseStatus == 200) { return transtr.responseData.translatedText; } else { return "有错误发生"; } } else { return str; } } catch (Exception ex) { return ex.Message; } } 反序列化: 复制代码 代码如下:using System; /// ///反序列化 /// /// {"responseData": {"translatedText":"ahuinan"}, "responseDetails": null, "responseStatus": 200} [Serializable] public class TranslateString { private TranslatedText _responseData; private string _responseDetails; private int _responseStauts; public TranslatedText responseData { get { return _responseData; } set { _responseData = value; } } public string responseDetails { get { return _responseDetails; } set { _responseDetails = value; } } public int responseStatus { get { return _responseStauts; } set { _responseStauts = value; } } /// /// 译文内容 /// public class TranslatedText { private string _translatedText; public string translatedText { get { return _translatedText; } set { _translatedText = value; } } } }

相关内容