无耐之举,解决问题100分+RMB200元;DELPHI如何提交英文内容到GOOGLE翻译,得到翻译回来的内容

hong668 2008-09-03 09:52:09
因为时间太紧,无意冒范论坛规则,请大家原谅;
在DELPHI里,如何用google在线翻译页面里:http://translate.google.cn/translate_t?hl=zh-CN#把要翻译的内容提交上去,然后得到它翻译回来的中文;
希望大家能伸出温暖的十指,200元不多,当是和大家学习学习,谢谢
...全文
456 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
725137 2008-09-10
  • 打赏
  • 举报
回复
太简单了。加我QQ:725137
hong668 2008-09-08
  • 打赏
  • 举报
回复
二楼的代码其实挺不错,但哪位能改一下里面,因为现在要是汉字的话输入就会是十六进制的了.
CXZ9 2008-09-05
  • 打赏
  • 举报
回复
偶也来 哇哈哈
QQ 112012221
rwlin 2008-09-05
  • 打赏
  • 举报
回复
联系我,晚上给你搞定

qq:79627128

僵哥 2008-09-05
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hong668 的回复:]
谢谢楼上.我就是对HTTP不是很熟,
http://translate.google.cn/translate_t?hl=zh-CN#能帮我看看吗,可能给个例子.
[/Quote]
目前时间紧,没空看.其实最简单的就是你做一个转发程序(TIdTCPPortMap就可以),让浏览器通过你的转发程序出去,然后记录下流览器在文本比较多的时候,发的是什么样的报文(肯定是POST),再看看HTTP协议,依样画葫芦即可.
budded 2008-09-04
  • 打赏
  • 举报
回复
楼上正解
hong668 2008-09-04
  • 打赏
  • 举报
回复
四楼的好像是有代码,但只提供DLL,liangqingzhi 兄弟能否救一下急帮研究一下.
老之 2008-09-04
  • 打赏
  • 举报
回复

function URLEncode(const S: string; const InQueryString: Boolean): string;
var
Idx: Integer; // loops thru characters in string
begin
Result := '';
for Idx := 1 to Length(S) do
begin
case S[Idx] of
'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
Result := Result + S[Idx];
' ':
if InQueryString then
Result := Result + '+'
else
Result := Result + '%20';
else
Result := Result + '%' + SysUtils.IntToHex(Ord(S[Idx]), 2);
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
word: string;
ms: TMemoryStream;
begin
ms := TMemoryStream.Create;
word := Memo2.Text;
IdHttp1.Get('http://translate.google.cn/translate_a/t?client=t&text=' + UrlEncode(Word, False) +'&sl=en&tl=zh-CN', ms);
ms.Position := 0;
Memo1.Lines.LoadFromStream(ms);
ms.Free;
end;
老之 2008-09-04
  • 打赏
  • 举报
回复
翻译达到一定长度需要post数据的,我懒得研究,你用4楼的代码
hong668 2008-09-04
  • 打赏
  • 举报
回复
liangqingzhi 能先留下QQ吗,
现在是如果翻译的字符超过一定数的时候会有抛出异常,你的方法比较简洁,能否再优化一下解决.
hong668 2008-09-04
  • 打赏
  • 举报
回复
谢谢,我先试楼上的,如果有问题我会再请教职200050;
承诺会对现.
hong668 2008-09-04
  • 打赏
  • 举报
回复
谢谢楼上.我就是对HTTP不是很熟,
http://translate.google.cn/translate_t?hl=zh-CN#能帮我看看吗,可能给个例子.
shuihan20e 2008-09-04
  • 打赏
  • 举报
回复
获得返回值,自己解析,2楼的代码没有问题
僵哥 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hong668 的回复:]
楼上能说清楚一点吗,直接把
IdHttp1.Get('http://translate.google.cn/translate_a/t?client=t&text=' + UrlEncode(Word, False) +'&sl=en&tl=zh-CN', ms);换成POST后,都没有数据回来了.
[/Quote]
如果你懂HTTP协议的话,可以查看该页面的源代码,找到一个action="post"的form域.
hong668 2008-09-04
  • 打赏
  • 举报
回复
楼上能说清楚一点吗,直接把
IdHttp1.Get('http://translate.google.cn/translate_a/t?client=t&text=' + UrlEncode(Word, False) +'&sl=en&tl=zh-CN', ms);换成POST后,都没有数据回来了.
  • 打赏
  • 举报
回复
用Get的方法的话长度有限制,用Post方法即可
vanvvdot 2008-09-04
  • 打赏
  • 举报
回复
我做过,楼上的楼上并没有完全解决问题,具体可以加我QQ:200050
  • 打赏
  • 举报
回复
用IE控件不好做么?

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧