开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 10851|回复: 5
收起左侧

[其它] 问答区某同学求问的谷歌翻译

[复制链接]
结帖率:95% (21/22)
发表于 2022-7-10 16:06:26 | 显示全部楼层 |阅读模式   山东省济宁市
原贴:大佬们帮忙看下这个文本怎么取出 我取的都是重复了
@aa8045 ,快回来,别用我回答的那个了,那个是错的,中午要去食堂吃饭比较急没仔细看,去晚了没饭了。下午没事瞎逛论坛突然又看到你采纳了,再仔细一看觉得不对的,那个还是会取到重复的。你参考下面这个吧,这个是我刚才写的较完美的。
111.png
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮_翻译_被单击  
变量名类 型静态数组备 注
提交地址文本型 
提交信息文本型 
返回文本文本型 
每条文本型0
计次整数型 
提交信息 = 编辑框1.内容
' 以下替换易出错字符,尤其是引号、左引号、右引号,容易出
' 现引号后面不会被翻译的问题,这是谷歌的问题,不是易语言
' 或模块问题,即便手动去网页翻译依然如此,后期如果再发现
' 什么字符容易出问题,可以在这里添加。结尾替换即可。
提交信息 = 子文本替换 (提交信息, “/”, “j1ltxgj1lt”, , , )
提交信息 = 子文本替换 (提交信息, “null”, “j1ltnullj1lt”, , , )
提交信息 = 子文本替换 (提交信息, “true”, “j1lttruej1lt”, , , )
提交信息 = 子文本替换 (提交信息, “,[”, “j1ltdkj1lt”, , , )
提交信息 = 子文本替换 (提交信息, #引号, “j1ltyhj1lt”, , , )
提交信息 = 子文本替换 (提交信息, #左引号, “j1ltyhj1lt”, , , )
提交信息 = 子文本替换 (提交信息, #右引号, “j1ltyhj1lt”, , , )
提交信息 = 子文本替换 (提交信息, #换行符, “j1lthhfj1lt”, , , )
' -----------------------------------------------------------------
提交信息 = “f.req=”编码_URL编码 ( #中转英头 + 提交信息 + #中转英尾, , )
提交地址 = “https://translate.google.cn/_/Tr ... rpcids=MkEWBc&f.sid”
返回文本 = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (提交地址, 1, 提交信息, , , , , , , , , , , , , , , , )))
' 我提交的:你好吗?我很好
' 以下是返回的
' )]}'
' [["wrb.fr","MkEWBc","[[\"Nǐ hǎo ma? Wǒ hěn hǎo\",null,\"zh-CN\",[[[0,[[[null,4]],[true]]]],7],[[\"你好吗?\",null,null,4],[\"我很好\",null,4,7]]],[[[null,null,null,null,null,[[\"Are you OK?\",null,null,null,[[\"Are you OK?\",[4]],[\"How are you?\",[4,5]],[\"How do you?\",[11]]]],[\"I'm very good\",null,true,null,[[\"I'm very good\",[2]],[\"I'm fine\",[2,5]],[\"I am fine\",[4]],[\"I am very nice\",[11]]]]]]],\"en\",1,\"zh-CN\",[\"你好吗?我很好\",\"auto\",\"en\",true]],\"zh-CN\"]",null,null,null,"generic"],["di",27],["af.httprm",26,"-8452384556758086659"]]
' 观察上面返回信息可得知,提交后会自动断句,每句翻译几次不等。但是每句翻译不管多少次,总有一次后面带 ,null、,true 这类字符,所以可以从这入手取不重复的
返回文本 = 文本_取出中间文本 (返回文本, #结果头, #结果尾 )
加入成员 (每条, 分割文本 (返回文本, “,[”, ))
返回文本 = “”
计次循环首 (取数组成员数 (每条), 计次)
如果真 (寻找文本 (每条 [计次], “null”, , ) ≠ -1 寻找文本 (每条 [计次], “true”, , ) ≠ -1)
返回文本 = 返回文本 + 文本_取出中间文本 (每条 [计次], “\”#引号, “\”#引号, , )

计次循环尾 ()
' 以下处理开头被替换的易出错字符
返回文本 = 子文本替换 (返回文本, “j1ltxgj1lt”, “/”, , , )
返回文本 = 子文本替换 (返回文本, “j1ltnullj1lt”, “null”, , , )
返回文本 = 子文本替换 (返回文本, “j1lttruej1lt”, “true”, , , )
返回文本 = 子文本替换 (返回文本, “j1ltdkj1lt”, “,[”, , , )
返回文本 = 子文本替换 (返回文本, “j1ltyhj1lt”, #引号, , , )
返回文本 = 子文本替换 (返回文本, “j1ltyhj1lt”, #左引号, , , )
返回文本 = 子文本替换 (返回文本, “j1ltyhj1lt”, #右引号, , , )
返回文本 = 子文本替换 (返回文本, “j1lthhfj1lt”, #换行符, , , )
' ---------------------------------------------------------------------
编辑框2.内容 = 返回文本

谷歌翻译(英文).e (913.61 KB, 下载次数: 33)

评分

参与人数 1精币 +1 收起 理由
1763791490 + 1 新技能已get√

查看全部评分


发表于 2022-9-9 09:16:24 | 显示全部楼层   河北省保定市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:97% (29/30)

签到天数: 7 天

发表于 2022-7-22 19:52:42 | 显示全部楼层   江苏省南京市
#在这里快速回复#  新技能已get√√
回复 支持 反对

使用道具 举报

结帖率:78% (70/90)

签到天数: 8 天

发表于 2022-7-10 18:24:45 | 显示全部楼层   河北省廊坊市
易路前行 发表于 2022-7-10 16:50
能访问到谷歌的页面吗?好像不可以吧

谷歌翻译没被墙
回复 支持 反对

使用道具 举报

结帖率:78% (52/67)
发表于 2022-7-10 16:50:56 | 显示全部楼层   辽宁省沈阳市
能访问到谷歌的页面吗?好像不可以吧
回复 支持 反对

使用道具 举报

结帖率:95% (21/22)

签到天数: 23 天

 楼主| 发表于 2022-7-10 16:24:48 | 显示全部楼层   山东省济宁市
本帖最后由 止戈为武 于 2022-7-10 16:28 编辑

@aa8045 还有个思路,就是提交前,直接给要提交的数据 里面的 断句符 替换成特定字段,结尾再替换回来,这样他应该只会返回一条重复数次的信息了。然后文本_取中间 的结尾用 \",null\",true 来取就行了,也就不用循环命令了,效率更高一些。
(比如句号、感叹号、问号之类的,不过这样比较麻烦,得自己慢慢去试谷歌都会把哪些字符判定为断句符)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表