会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
清山博客
分享互联网(151647889)
慎言其余,则寡尤;多见阙殆,慎行其余,则寡悔。言寡尤,行寡悔。
博客园
首页
新随笔
联系
订阅
管理
CSDN博客
清山博客
随笔 - 585
文章 - 0
评论 - 33
阅读 -
89万
Google翻译API(B/S调用和C/S调用)
浏览器调用:
<html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript"> <!-- google.load("language", "1"); function initialize() { var text = document.getElementById("text").innerHTML; google.language.detect(text, function(result) { if (!result.error && result.language) { google.language.translate(text, result.language, "en", function(result) { var translated = document.getElementById("translation"); if (result.translation) { translated.innerHTML = result.translation; } }); } }); } google.setOnLoadCallback(initialize); //--> </script> </head> <body> <div id="text">你好,很高興見到你。</div> <div id="translation"></div> </body> </html>
客户端 调用:
将 Google翻译API封装成一个类:GoogleTranslateLib.cs
namespace GoogleTranslateLib { using System; using System.IO; <strong><span style="color:#ff6600;">using System.Net;</span> <span style="color:#ff6600;">using System.Runtime.Serialization;</span></strong> using System.Text; <strong><span style="color:#ff6600;"> using System.Web;</span></strong> [DataContract(Namespace = "http://ajax.googleapis.com/ajax/services/language/translate")] class Config { [DataMember(Order = 0)] public ResponseData responseData { get; set; } [DataMember(Order = 1)] public string responseDetails { get; set; } [DataMember(Order = 2)] public string responseStatus { get; set; } } [DataContract(Namespace = "http://ajax.googleapis.com/ajax/services/language/translate")] class ResponseData { [DataMember(Order = 0)] public string translatedText { get; set; } } class Translate { public static string translatezh2en(string sourceText, string langPair) { string result; string url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair="; url += HttpUtility.UrlEncode(langPair) + "&q=" + HttpUtility.UrlEncode(sourceText); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; request.Referer = "http://www.my-ajax-site.com"; try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8")); result = reader.ReadToEnd(); } catch (Exception) { return ""; } return result; } } }
调用方法:
using System; using System.IO; using System.Text; <strong><span style="color:#ff6600;">using System.Runtime.Serialization.Json;</span></strong> namespace GoogleTranslateDemo { class Program { public static void Main(string[] args) { Console.WriteLine("请输入您想翻译的字词:"); string inputStr = Console.ReadLine(); Console.WriteLine("翻译中,请稍后..."); string result = GoogleTranslateLib.Translate.translatezh2en(inputStr, "zh|en"); if (!string.IsNullOrEmpty(result)) { var serializer = new DataContractJsonSerializer(typeof(GoogleTranslateLib.Config)); var mStream = new MemoryStream(Encoding.UTF8.GetBytes(result)); GoogleTranslateLib.Config readConfig = (GoogleTranslateLib.Config)serializer.ReadObject(mStream); if (readConfig.responseStatus == "200") { string message = "原始内容:" + inputStr + Environment.NewLine + "翻译内容:" + readConfig.responseData.translatedText; Console.WriteLine(message); } } Console.ReadKey(true); } } }
效果图:
分类:
Google
好文要顶
关注我
收藏该文
微信分享
清山博客
粉丝 -
86
关注 -
2
+加关注
0
0
«
上一篇:
设计模式
»
下一篇:
Google 翻译API Demo
posted @
2011-07-31 11:35
清山博客
阅读(
1228
) 评论(
3
)
编辑
收藏
举报
刷新页面
返回顶部
登录后才能查看或发表评论,立即
登录
或者
逛逛
博客园首页
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
编辑推荐:
·
10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
·
.NET Core 中如何实现缓存的预热?
·
从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
·
AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
·
基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
·
10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
·
地球OL攻略 —— 某应届生求职总结
·
提示词工程——AI应用必不可少的技术
·
Open-Sora 2.0 重磅开源!
·
周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2009-07-31
Attributes in C#
欢迎光临
您是第undefined位访客
昵称:
清山博客
园龄:
15年10个月
粉丝:
86
关注:
2
+加关注
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
01.常见问题
(1)
积分与排名
积分 - 386477
排名 - 2178
随笔分类
《C#和.Net2.0实战 平台、语言框架》(4)
《javascript高级程序设计》(7)
《管理的常识》(3)
《黑客与画家》(5)
《精通javascript》(5)
《理解专业程序员》(1)
《洛克菲勒留给儿子的38封信》(6)
《人生的智慧》(4)
Access 数据库(3)
Android Phonegap(1)
Android Phonegap(1)
ASP.NET(65)
ASP.NET AJAX(3)
ASP.NET MVC(10)
C#(81)
C#设计模式(9)
C#语言基础(5)
CSS(3)
Demo(13)
Google(3)
Helper(23)
IT视界(18)
JavaScript(63)
JqueryEasyUI(3)
JqueryEasyUI(3)
MBA智库(1)
MBA智库(1)
MySql 数据库(1)
NopCommerce(1)
Object-C(6)
Oracle 数据库(8)
SQL Server 数据库(23)
SQL Server数据库(32)
WCF(1)
WPF(1)
XSLT(5)
读书(10)
个人日志(3)
公共资源(6)
精通javascript(5)
论语(1)
模板引擎(1)
模板引擎(1)
其他(13)
软件工程(1)
软件工程(1)
设计模式(8)
数据安全(10)
数据结构(C&C++描述)(7)
数据结构与算法(10)
学习总结(3)
学习总结(3)
源代码(30)
正则表达式(6)
更多
随笔档案
2018年8月(1)
2016年1月(2)
2015年7月(2)
2015年6月(6)
2015年5月(4)
2015年4月(8)
2015年3月(7)
2015年2月(6)
2015年1月(15)
2014年12月(4)
2014年11月(6)
2014年10月(4)
2014年9月(10)
2014年8月(2)
2014年7月(7)
2014年6月(26)
2014年5月(10)
2014年4月(8)
2014年3月(19)
2014年2月(6)
2014年1月(1)
2013年12月(3)
2013年11月(4)
2013年10月(5)
2013年9月(3)
2013年8月(3)
2013年7月(8)
2013年6月(15)
2013年5月(24)
2013年4月(10)
2013年3月(7)
2013年1月(7)
2012年12月(21)
2012年11月(6)
2012年10月(4)
2012年9月(1)
2012年8月(6)
2012年7月(17)
2012年6月(6)
2012年5月(9)
2012年4月(2)
2012年3月(5)
2012年2月(13)
2012年1月(5)
2011年12月(12)
2011年11月(3)
2011年10月(5)
2011年9月(3)
2011年8月(2)
2011年7月(16)
2011年6月(7)
2011年5月(7)
2011年4月(4)
2011年3月(1)
2011年2月(5)
2011年1月(6)
2010年12月(7)
2010年11月(7)
2010年10月(4)
2010年9月(3)
2010年8月(10)
2010年7月(14)
2010年6月(7)
2010年5月(1)
2010年3月(2)
2009年12月(6)
2009年11月(18)
2009年10月(2)
2009年9月(27)
2009年8月(36)
2009年7月(24)
2009年4月(1)
2009年2月(2)
更多
阅读排行榜
1. C# String 前面不足位数补零的方法(93162)
2. 中国城市经纬度表(精确到县区)Google地图用(59388)
3. 序号的结构层次顺序(51279)
4. 向Url发送post请求传递参数(40885)
5. SQL连接查询2 外连接(左右联接查询)(36240)
评论排行榜
1. Google翻译API(B/S调用和C/S调用)(3)
2. 2015-05月份学习总结 分类: 学习总结 2015-06-02 22:37 83人阅读 评论(0) 收藏(2)
3. 一个故事搞懂经济危机(少儿不宜)(2)
4. 比较两个对象是否相等(2)
5. xml,json,html格式化工具(2)
推荐排行榜
1. C# String 前面不足位数补零的方法(8)
2. sql:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询(3)
3. C#中的事件(详解)(3)
4. Quartz.NET WinFrom 关闭程序后无法结束进程(2)
5. C# Winform ListView使用(1)
最新评论
1. Re:ASP.NET Web.Config 读写辅助类
楼主博客里的代码排版貌似除了问题, 18-20行
--越女无觅
2. Re:winform程序textbox滚动条保持在最下面 内容不闪烁
好像并没有什么区别,,都在闪。。亲测
--覆手为云p
3. Re:阻止Application_End事件的解决方案
那你Quartz的作用调度,启动方哪里呢,你这样做缓存过期的时候只会触发Application_BeginRequest事件
--15279124759
4. Re:比较两个对象是否相等
@ 笑清风这里写的序列化,其实不是序列化,是逐个判断对象的每个属性;如果对象属性简单的话(如:不含时间类型的属性),可以直接序列化后来对比,那样更方便...
--清山博客
5. Re:比较两个对象是否相等
为什么要排除string类型呢? //判断该字段类型是否为类,且不是string类型 if (filedType.IsClass && "String" != filedType.Name)...
--笑清风
点击右上角即可分享
AI IDE Trae
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2009-07-31 Attributes in C#