【C语言】【wndow】--在线翻译器.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【C语言】【wndow】--在线翻译器

【C语言】【Windows】--在线翻译器 01.程序简介 程序名称: 编译器:vs2010(其它也可以……) 程序大小:10K 文件包括:exe, skinh.she,SkinH.dll,msvcr100.dll 程序界面: 02.任务说明 /******************************************************************** 【光影队】【任务】【LV5】在线翻译器 ********************************************************************/ 任务名称:在线翻译器 任务难度:等级5 任务发布时间: 任务所需知识:C语言界面编程。算法。 任务简介:一个多国语言的在线翻译器。N天前使用学校的电脑,结果鼠标的半报废的货。使用谷歌翻译的时候需要全部删除输入的内容,结果鼠标选择不了,只能一个个字符Delete,或者点击打开新的窗口。每次使用翻译都需要这样很麻烦,突然想要自己写一个翻译器,于是开工了……程序需要可以对常用的几种语言间进行翻译。 任务资料提示: ·可以使用URLDownloadToFile对翻译结果的网页进行下载,然后分析网页即可得出翻译结果。 ·URL是:/translate_t?q=要翻译的内容hl=zh-CNlangpair=源语言|目标语言 ·源语言与目标语言可以在谷歌翻译找到,如:en是英语,zh-CN是中文简体 ·要翻译的内容中的空格用%20代替,换行(\r\n)用%0A代替。 ·注意网页是UTF-8编码。 ·网页打开: backgroundColor=#fff 后面开始是翻译后的内容 后面的内容如果有换行那就带brbr?和其它…… 后面如果没有内容了那就带/span/span/div/div ·具体网页可以自己下载网页进行分析。 /******************************************************************** 03.相关技术 001.程序界面: 使用对话框。我们按下翻译按钮后。程序得到文本框的内容,然后根据文本的内容长度与标点符号进行分割,然后将分割的内容与相应的语言选择进行URL构造。根据构造的URL下载网页。最后分析网页得到翻译后的内容。 002.URL: 目标URL是:/translate_t?q=要翻译的内容hl=zh-CNlangpair=源语言|目标语言 源语言与目标语言可以通过用户的下拉列表(Combobox)选择得到。 如: 中文简体:zh-CN 中文繁体:zh-TW 英语:en 日语:ja 韩语:ko 法语:fr 菲律宾语:tl 越南语:vi 拉丁语:la 更多可以到谷歌翻译上找…… 如将“lucifer”以为中文,那么下载的链接就是: /translate_t?q=luciferhl=zh-CNlangpair=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); 之后显示的内容就不会是

文档评论(0)

vwq784 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档