【C语言】【window】--在线翻译器
C
语
言
在
线
翻
译
器
光影
2012年7月8日22:03:22
【C语言】【Windows】--在线翻译器01.程序简介
程序名称:在线翻译器
编译器:vs2010(其它也可以……)
程序大小:109K
文件包括:在线翻译器.exe,skinh.she,SkinH.dll,msvcr100.dll
程序界面:
02.任务说明
/********************************************************************
【光影队】【任务】【LV5】在线翻译器
********************************************************************/
任务名称:在线翻译器
任务难度:等级5
任务发布时间:
任务所需知识:C语言界面编程。算法。
任务简介:一个多国语言的在线翻译器。N天前使用学校的电脑,结果鼠标的半报废的货。使用谷歌翻译的时候需要全部删除输入的内容,结果鼠标选择不了,只能一个个字符Delete,或者点击打开新的窗口。每次使用翻译都需要这样很麻烦,突然想要自己写一个翻译器,于是开工了……程序需要可以对常用的几种语言间进行翻译。
任务资料提示:
·可以使用URLDownloadToFile对翻译结果的网页进行下载,然后分析网页即可得出翻译结果。
·URL是:https://www.360docs.net/doc/538361788.html,/translate_t?q=要翻译的内容&hl=zh-CN&langpair=源语言|目标语言
·源语言与目标语言可以在谷歌翻译找到,如:en是英语,zh-CN是中文简体·要翻译的内容中的空格用%20代替,换行(\r\n)用%0A代替。
·注意网页是UTF-8编码。
·网页打开:
backgroundColor='#fff'"> 后面开始是翻译后的内容
后面的内容如果有换行那就带
?和其它……
后面如果没有内容了那就带
·具体网页可以自己下载网页进行分析。
/********************************************************************
03.相关技术
001.程序界面:
使用对话框。我们按下翻译按钮后。程序得到文本框的内容,然后根据文本的内容长度与标点符号进行分割,然后将分割的内容与相应的语言选择进行URL构造。根据构造的URL下载网页。最后分析网页得到翻译后的内容。
002.URL:
目标URL是:https://www.360docs.net/doc/538361788.html,/translate_t?q=要翻译的内容&hl=zh-CN&langpair=源语言|目标语言
源语言与目标语言可以通过用户的下拉列表(Combobox)选择得到。
如:
中文简体:zh-CN
中文繁体:zh-TW
英语:en
日语:ja
韩语:ko
法语:fr
菲律宾语:tl
越南语:vi
拉丁语:la
更多可以到谷歌翻译上找……
如将“lucifer”以为中文,那么下载的链接就是:
https://www.360docs.net/doc/538361788.html,/translate_t?q=lucifer&hl=zh-CN&langpair=en|zh-CN
然后使用:URLDownloadToFile进行下载
URLDownloadToFile(0,下载目标,保存的文件名,0,NULL);
然后就是文件操作了。
003.编码
网页文件是使用UTF-8编码,我们直接读取的网页内容然后进行显示的时候就会发现,英文正常显示,中文全部都变成了乱码。
于是我们需要对其进行编码转换。
我们使用char型的数组buffer进行读取然后在进行一下转换:
//先转换为Unicode
int wLen2 = MultiByteToWideChar(CP_UTF8, 0, buffer, -1, NULL, 0);
wchar_t* wStr2 = (wchar_t*)malloc(sizeof(wchar_t)*wLen2);
MultiByteToWideChar(CP_UTF8, 0, buffer, -1, wStr2, wLen2);
//再转换为Ascii
int aLen2 = WideCharToMultiByte(CP_ACP, 0, wStr2, -1, NULL, 0, NULL, NULL);
char* converted2 = (char*)malloc(sizeof(char)*aLen2);
WideCharToMultiByte(CP_ACP, 0, wStr2, -1, converted2, aLen2, NULL, NULL);
之后显示的内容就不会是乱码了。于是后续的字符串操作,翻译内容的定位就简单了……
004.检查输入的内容。
input是得到的输入内容。然后检查有没有空格和换行。如果有就进行替换。
空格换成“%20”
换行符换成“%0A”。
大致流程是:
/******************************************************************** 替换空格和换行。
接着
我们判断它的大小:
int inputlen=strlen(input);
while(inputlen>500){
截取字符串,进行翻译,得到结果后,继续截取,直到inputlen小于500跳出循环。
因为太长的URL得不到结果。
}
最后将剩下那段长度小于500的字符串进行翻译并得出结果。
以上完成。
********************************************************************/
005.对于输入需要设计的算法:
a.判断字符串哪些地方存在空格和换行符。
b.将该位置的空格和换行符用相应的字符串进行替换。“%20 %0A”
c.字符串从500个字节倒数回来有一些常用结束标点(。,?!等),那就从500
倒数第一个标点开始截取字符串,标点前面的作为翻译的内容,标点后面的前移,准备下一次截取。
d.如果前500个字符没有这些标点(如有些诗歌压根没有标点),那就从第500
个字符开始截取,前面的进行翻译,后面的前移,准备下一次截取。
e.从字符串input里面的从头开始截取index个字符放入NowTochange里面,然
后字符串input从index位置后面的字符全部前移。
f.检查输入内容的末端,如果有换行符,那就换成空格。
006.检查输出的内容
对于截取到的翻译内容,我们还不可以直接显示出来。还要将其中的特殊字符串替换成字符。
如“"”是双引号。“'”是单引号。“<”是“<”。“> ”是“>”.
还有特殊的空格符(如全角),读取的时候为“
?”或“
??”等。这些都需要找出来进行替换。
007.定位翻译结果。
判断开始位置:
从头开始扫描,直到出现='#fff'"> 这段为止。就是开始出现翻译内容的位置
/******************************************************************** while(nif((buffer[n]=='=')&&(buffer[n+1]=='\'')&&(buffer[n+2]=='#')&&(buffer[n+3]==' f')&&(buffer[n+4]=='f')&&(buffer[n+5]=='f')&&(buffer[n+6]=='\'')&&(buffer[n+7]= ='\"')&&(buffer[n+8]=='>'))
{
Begin=n+9;
break;
}
n++;
}
********************************************************************/
判断结束位置。
/******************************************************************** while(nif((buffer[n]=='<')&&(buffer[n+1]=='b')&&(buffer[n+2]=='r')&&(buffer[n+3]==' >')&&(buffer[n+4]=='<')&&(buffer[n+5]=='b')&&(buffer[n+6]=='r')&&(buffer[n+7] =='>')&&(buffer[n+8]=='<'))
{
End=n;
break;
}
if((buffer[n]=='<')&&(buffer[n+1]=='/')&&(buffer[n+2]=='s')&&(buffer[n+3]==' p')&&(buffer[n+4]=='a')&&(buffer[n+5]=='n')&&(buffer[n+6]=='>')&&(buffer[n+7] =='<')&&(buffer[n+8]=='s'))
{
End=n;
break;
}
if((buffer[n]=='<')&&(buffer[n+1]=='/')&&(buffer[n+2]=='s')&&(buffer[n+3]==' p')&&(buffer[n+4]=='a')&&(buffer[n+5]=='n')&&(buffer[n+6]=='>')&&(buffer[n+7] =='<')&&(buffer[n+8]=='/')&&
(buffer[n+9]=='s'))
{
End=n;
t=NextLine+1;
break;
}
n++;
}
********************************************************************/
这一行翻译结束:
<
下一行翻译开始:最后一行翻译结束:
翻译的内容如有换行就会出现多行显示,其中由HTML代码隔开。我们对其进行识别分割,读取出翻译的内容。
也就是从开始位置到结束位置,我们截取其中的字符串(翻译后的结果)。然后继续循环得到下一句翻译内容的开始和结束位置。继续截取翻译内容。
直到遇到标志:为止。
008.复制翻译结果。
/******************************************************************** 得到结果,复制到剪切板。
********************************************************************/ void GetTranText(){
char Result[5120];
GetDlgItemTextA(Hwnd,IDC_EDIT2,Result,5120);
if(OpenClipboard(Hwnd))
{
HGLOBAL hClip;
TCHAR *pBuf;
//清空剪切板内容
EmptyClipboard();
//分配新全局内存空间
hClip=GlobalAlloc(GHND, 5120);
//锁住全局内存空间
pBuf=(TCHAR *)GlobalLock(hClip);
//将内容写入全局内存空间
memcpy(pBuf, Result, strlen(Result));
//将空间中的内容写入剪切板
SetClipboardData(CF_TEXT, hClip); //设置数据
//解锁全局内存空间
GlobalUnlock(hClip); //解锁
//释放全局内存空间
GlobalFree(hClip);
//关闭剪切板
CloseClipboard();
MessageBoxA(NULL,Result,"结果已经成功复制到剪切板",MB_OK);
}else{
MessageBoxA(NULL,"不能打开剪切板,复制失败。","Error",MB_OK);
}
以上是程序的相关技术,主要是算法(字符串的处理),C语言对于这方面可以很擅长的,需要用到以前学黑窗体的时候的很多算法知识。
对于输入内容的检查与处理,文中只给出算法的思想,没有代码例子。详细可以直接看程序的源代码。
04.工程介绍
程序源代码:
resource.h:加入资源的时候编译器自己添加的。
MainFrame.cpp:程序的主函数与消息处理函数。
Translation.h:头文件与函数声明
Translation.cpp:程序自定义函数。
程序源代码文件(TXT):
/*********************************************************** Translation.h.txt MainFrame.cpp.txt resource.h.txt Translation.cpp.txt ***********************************************************/ 双击打开
图标文件
001.ico
05.关于(广告)
/******************************************************************** 用C语言写的东东……更多可到百度贴吧:【erbi_lucifer吧】看看
https://www.360docs.net/doc/538361788.html,/f?kw=erbi_lucifer#
********************************************************************/ /******************************************************************** 光影
QQ空间:
https://www.360docs.net/doc/538361788.html,/1264534037/infocenter?qz_referrer=qqtips#!
********************************************************************/ /********************************************************************
/\./\/\_I Hand You
__{^\_ _}_)}/^\ A Rose...
//\_/^\._}_////
((__{(@)}\__}.//_/__A___A______A_______A______A____
\__/{/(_)\_})\\ \\---v----V-----V--Y----v---Y-----
((__)_)_/)\ \>
\__/\__/\/\/ 光影:QQ:1264534037
\__,--'时间:2012年7月9日7:43:01
欢迎一起探讨编程世界
********************************************************************/
06.其它
语言翻译器的创业计划书
语言翻译器创业计划书 1.投资计划概要 1-1本计划的目的 ●为有意投资于本项目者提出充分的信息 ●为本计划未来的经营活动提供基本数据和指导准则 1-2 对语言翻译器的市场需求 随着科技不断进步,国与国之间的互相合作,人们之间的交流逐渐频繁,语言的沟通已经成为我们生活中重要的部分了,对语言有帮助的产品日益重视, 语言产品的加速普及与换代升级必将孵化出惊人市场推动力,语言产品的市场发展前景非常广阔。今后2至3年内,我国语言产品行业将步入黄金发展阶段,市场需求量年增幅有可能突破30%。 1-3行业分析 语言翻译器中的设备占有绝对优势,它打破了传统的翻译器,带来的效果是更方便,更好用。早在以前的翻译器只提供单字或者是一句话翻译出来,对于现场和别人交流是个个大问题,这个新发明的翻译器,它具有声音接收器,可以把对方的说话翻译成自己的母语,显示在屏幕上或发声,同样地亦可以把自己的语言翻译成对方的母语,这样即使是两个语言不通的人也可以畅所欲言。根据我的推断,对于
一些旅游者,外出工作需要和语言不通的人交流,人们对本产品的需求还是不错的,市场潜力巨大。 1-4生产经营 企业生产经营是企业资本经营的基础,也是企业资本经营的最终归宿点。没有绩优的企业生产经营做为基础,企业资本经营很难开展起来,因此为了控制成本和降低对固定资产的资本投资风险,我们计划在深圳市租赁厂房和生产设备,这种策略将有助于降低生气成本和增强生产经营的灵活性,进而提高市场竞争力。 1-5市场营销 本产品所瞄准的客户比较大众的,由青少年到中年人士, 这些群体具有的共性是他们有较高的文化水平,愿意而且有能力去购买这些产品, 这些共同性,从而使公司能够创造价值。同时我们要突出产品的价值,不断完善产品的质量,寻求新的细分市场。 1-6企业管理层和股权结构 1-6-1 管理层 本公司将由本地经理人才管理,因为他们对本地市场较为熟悉,而且聘用他们的人力成本较低,并且要有良好的管理专业教育和在销售领域拥有丰富的工作经验。 1-6-2股权结构 所有权总投资为600万元人民币,7位高层经理将投资200万元人民币,另外翻译器技术诀窍估计100万元人民币,共300万元人民币。剩余300万元人民币将寻求风险投资基金的投入。所有权形式为有限责任制,根据资本结构,董事会由高层经理,技术诀窍所有者和风险投资者组成。 1-7财务数据 1-7-1要求投资金额 为了实现长期稳定的业务经营目标,本项目要求获得550万元人民币,这包括了开业费和营运资本。 1-7-2投资回报预测
语言翻译器创业计划书
语言翻译器创业计划书 外语学院金梁军 1.投资计划概要 1-1本计划的目的 ●为有意投资于本项目者提出充分的信息 ●为本计划未来的经营活动提供基本数据和指导准则 1-2 对语言翻译器的市场需求 随着科技不断进步,国与国之间的互相合作,人们之间的交流逐渐频繁,语言的沟通已经成为我们生活中重要的部分了,对语言有帮助的产品日益重视, 语言产品的加速普及与换代升级必将孵化出惊人市场推动力,语言产品的市场发展前景非常广阔。今后2至3年内,我国语言产品行业将步入黄金发展阶段,市场需求量年增幅有可能突破30%。 1-3行业分析 语言翻译器中的设备占有绝对优势,它打破了传统的翻译器,带来的效果是更方便,更好用。早在以前的翻译器只提供单字或者是一句话翻译出来,对于现场和别人交流是个个大问题,这个新发明的翻译器, 它具有声音接收器,可以把对方的说话翻译成自己的母语,显示在屏幕上或发声,同样地亦可以把自己的语言翻译成对方的母语,这样即使是两个语言不通的人也可以畅所欲言。根据我的推断,对于一些旅游者,外出工作需要和语言不通的人交流, 人们对本产品的需求还是不错的,市场潜力巨大。 1-4生产经营 企业生产经营是企业资本经营的基础,也是企业资本经营的最终归宿点。没有绩优的企业生产经营做为基础,企业资本经营很难开展起来,因此为了控制成本和降低对固定资产的资本投资风险,我们计划在深圳市租赁厂房和生产设备,这种策略将有助于降低生气成本和增强生产经营的灵活性,进而提高市场竞争力。
1-5市场营销 本产品所瞄准的客户比较大众的,由青少年到中年人士, 这些群体具有的共性是他们有较高的文化水帄,愿意而且有能力去购买这些产品, 这些共同性,从而使公司能够创造价值。同时我们要突出产品的价值,不断完善产品的质量,寻求新的细分市场。 1-6企业管理层和股权结构 1-6-1 管理层 本公司将由本地经理人才管理,因为他们对本地市场较为熟悉,而且聘用他们的人力成本较低,并且要有良好的管理专业教育和在销售领域拥有丰富的工作经验。 1-6-2股权结构 所有权总投资为600万元人民币,7位高层经理将投资200万元人民币,另外翻译器技术诀窍估计100万元人民币,共300万元人民币。剩余300万元人民币将寻求风险投资基金的投入。所有权形式为有限责任制,根据资本结构,董事会由高层经理,技术诀窍所有者和风险投资者组成。 1-7财务数据 1-7-1要求投资金额 为了实现长期稳定的业务经营目标,本项目要求获得550万元人民币,这包括了开业费和营运资本。 1-7-2投资回报预测 如果我们的销售计划得以实现,本项目的资本投资将在3年内收回,年均股本回报率约为52.33%,内部收益为62%。这一数字来自于我们的会计师的保守估计。 1-8结论 总之,鉴于语言翻译器的技术优势和市场上受欢迎的程度,如果取得足够的投资,这一项目将为投资者带来丰厚的技报。 2.语言翻译器的市场需求分析
【C语言】【window】--在线翻译器
C 语 言 在 线 翻 译 器 光影 2012年7月8日22:03:22
【C语言】【Windows】--在线翻译器01.程序简介 程序名称:在线翻译器 编译器:vs2010(其它也可以……) 程序大小:109K 文件包括:在线翻译器.exe,skinh.she,SkinH.dll,msvcr100.dll 程序界面:
02.任务说明 /******************************************************************** 【光影队】【任务】【LV5】在线翻译器 ********************************************************************/ 任务名称:在线翻译器 任务难度:等级5 任务发布时间: 任务所需知识:C语言界面编程。算法。 任务简介:一个多国语言的在线翻译器。N天前使用学校的电脑,结果鼠标的半报废的货。使用谷歌翻译的时候需要全部删除输入的内容,结果鼠标选择不了,只能一个个字符Delete,或者点击打开新的窗口。每次使用翻译都需要这样很麻烦,突然想要自己写一个翻译器,于是开工了……程序需要可以对常用的几种语言间进行翻译。 任务资料提示: ·可以使用URLDownloadToFile对翻译结果的网页进行下载,然后分析网页即可得出翻译结果。 ·URL是:https://www.360docs.net/doc/538361788.html,/translate_t?q=要翻译的内容&hl=zh-CN&langpair=源语言|目标语言 ·源语言与目标语言可以在谷歌翻译找到,如:en是英语,zh-CN是中文简体·要翻译的内容中的空格用%20代替,换行(\r\n)用%0A代替。 ·注意网页是UTF-8编码。 ·网页打开: backgroundColor='#fff'"> 后面开始是翻译后的内容 后面的内容如果有换行那就带
?和其它…… 后面如果没有内容了那就带 ·具体网页可以自己下载网页进行分析。 /********************************************************************
将高级语言程序翻译成机器语言程序的软件称为翻译程序
1.将高级语言程序翻译成机器语言程序的软件称为翻译程序。翻译程序有两种: 一种是编译程序,另一种是解释程序。 2.指令的实现,即如何取指令、分析指令、取操作数、运算、送结果等,这些 都属于计算机组成问题。 3.为了能实现按地址访问的方式,主存中还必须配置两个寄存器MAR和 MDR。 4.计算机硬件的主要技术指标:1机器字长2 存储容量3 运算速度。 5.按系统总线传输信息的不同,又可分为三类:数据总线、地址总线和控制总 线。 6.通常将完成一次总线操作的时间称为总线周期,可分为以下4个阶段:1. 申请分配阶段 2.寻址阶段 3. 传数阶段 4. 结束阶段 7.存储器有3 个主要性能指标:速度、容量和每位价格。 8.半导体存储芯片的译码驱动方式有两种:线选法和重合法。 9.常见的动态RAM基本单元电路有三管式和单管式两种,它们的共同特点都 是靠电容存储电荷的原理来寄存信息。 10.Cache的出现使CPU可以不直接访问主存,而与高速Cache交换信息。 11.地址映射方式很多,有直接映射(固定的映射关系)、全相联映射(灵活性大 的映射关系)、组相联映射(上述两种映射的折中)。 12.常用的替换算法有先进先出算法、近期最少使用算法和随机法。 13.磁表面存储器通过磁头和记录介质的相对运动完成读/写操作。 14.I/O设备与主机信息传送的控制方式:1 程序查询方式 2 程序中断方式 3 DMA方式、I/O通道方式、I/O处理机方式。 15.一般中断服务程序的流程分四大部分:保护现场、中断服务、恢复现场、中 断返回。 16.DMA特点:由于主存和DMA接口之间有一条数据通路,因此主存和设备交 换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高。
转在线语言翻译器在线语言翻译器1
转在线语言翻译器在线语言翻译器1、世界通文字档案英-汉、汉-英翻译网页英、日、汉繁、简互译邮件中、英互译双语搜索等。 2、联通翻译提供英、汉简体、日、俄、德等语种的流览翻译、即时翻译、上载翻译、邮件翻译。目前只对中国联通宽带用户及其165拨号上网用户开fang 3、华建翻译流览翻译、即时翻译、上载翻译、邮件翻译、双语纵横、网路词海原文语种有英语、汉语简体、汉语繁体、日语、俄语、德语译文语种有英语、汉语简体、汉语繁体、日语。 4、CCSEE看中文中文网页翻译中文英文网页翻译中文简、繁中文网页BIG5繁体转换GB简体英文文本/英文邮件翻译中文简、繁。 5、译桥档上载翻译英译汉和汉译英、在线即时翻译英译汉和汉译英、电子邮件翻译英译汉和汉译英、即时流览翻译即网站翻译英译汉和汉译英。 6、外语时空网站网页即时翻译、文本翻译-文本即时翻译和文本邮寄翻译、电子邮件即时翻译可以在线翻译的语言有英语汉语法语德语西班牙语葡萄牙语义大利语荷兰语俄语希腊语日语朝鲜语等。 7、看世界把英文文本、网页翻译成中文简体、繁体。 8、译星网支援在线中英文互译方便快捷翻译准确。有繁体、日文、韩文等多种版本。 9、时空雨英文网页即时汉化、日文网页即时翻译 10、网路中国-翻译频道即时翻译英-汉、汉-英、汉-日、俄-汉、德-汉、流览翻译英语、汉语简体、汉语繁体、日语、俄语、德语互译、上传翻译中文档翻译为英文档、英文档翻译为中文档、双语词典、数位专用翻译等。 11、中国21即时翻译.ite/Translation.htm 可选择Read World、https://www.360docs.net/doc/538361788.html,、Luneng、Unicom、T-Text、World、Lingo、Jinxlate、Alis 等翻译器进行英-汉翻译。 12、WorldLanguage在线翻译Ymf对文字档案可进行英语-葡萄牙语、英语-克罗地亚语、英语-捷克语、英语-丹麦语、英语-荷兰语、英语-西班牙语、英语-芬兰语、英语-法语、英语-德语、英语-希腊语、英语-匈牙利语、英语-冰岛语、英语-义大利语、英语-挪威语、英语-波兰语、英语-俄语、英语-瑞典语、英语-塞尔维亚语、英语-斯洛伐克语、美国英语-英国英语、英国英语-美国英语、葡萄牙语-英语、克罗地亚语-英语、丹麦语-英语、荷兰语-英语、西班牙语-英语、芬兰语-英语、法语-英语、德语-英语、德语-匈牙利语、德语-挪威语、德语-波兰语、希腊语-英语、匈牙利语-英语、匈牙利语-德语、匈牙利语-俄语、冰岛语-英语、义大利语-英语、挪威语-英语、挪威语-德语、波兰语-英语、波兰语-德语、俄语-英语、俄语-匈牙利语、塞尔维亚语-英语、斯洛伐克语-英语、瑞典语-英语等翻译。 13、Freetranslation 提供英语-西班牙语、英语-法语、英语-德语、英语-义大利语、英语-波兰语、英语-葡萄牙语、英语-挪威语、英语-汉语简、英语-汉语繁、西班牙语-英语、法语-英语、德语-英语、义大利语-英语、波兰语-英语、葡萄牙语-英语的文本和网页翻译。 14、听雨轩提供英语、日语网页即时翻译。 15、丰化-繁简通 GB-BIG5、BIG5-GB 网页转换 16、鲁能资讯港网译中心英语-汉语简、繁即时网页翻译、文本即时翻译、邮件翻译、档上传翻译。 17、Systran SoftwareInc 英语-荷兰语、英语-日语、英语-韩语、英语-汉语简、繁、英语-俄语、英语-西班牙语、英语-法语、英语-德语、英语-义大利语、英语-葡萄牙语、法语-荷兰语、法语-西班牙语、法语-葡萄牙语等网页、文本互译。 18、Google Language Tools 英语-西班牙语、英语-法语、英语-义大利语、英语-葡萄牙语网页、文本互译。以下网页的在线翻译多移植或链结上述翻译器因其简明、点击率高备录如下西域网页在线翻译资讯大超市在线网页翻译天狼居搜索导航英文网站即时翻译英文或繁体网站即时翻译银狐再线蓝盾在线翻译胜易网在线翻译翻译专家俄语在线翻译软件 1、worldlingo翻译、本土化、全球化不错用.er_translation.html