1724663133 发表于 2019-10-11 21:10:14

[原创]分享把一个易语言翻译模块翻译成C#


想做一个小翻译软件,于是乎找论坛,发现了一位仁兄发布的模块比较不错,原因是免费的支持的语言还很多undefined
https://bbs.125.la/forum.php?mod=viewthread&tid=14112127&highlight=%B7%AD%D2%EB
于是引用了这位仁兄的模块,想把中文翻译成越南语, 发现有很多问号,并不能正常显示
http://att.125.la/data/attachment/forum/201910/11/202545mfx6kt9dwnn232mt.png
到网上查了一下,原来是因为易语言只支持ascii 不支持Unicode 所以这就比较尴尬了
如果想让这个模块支持Unicode 只能放他的返回值是字节集类型才有可能通过复杂的转换实现让它支持Unicode
又因为这位兄弟发的是现成的模块,所以只能通过先逆向模块在改方法了,于是我逆向了一下模块
http://att.125.la/data/attachment/forum/201910/11/204036pk58hbfk6at2tk51.png

可以发现代码很短,api也直接暴露,将其直接复制到易语言当函数用,发现在执行网页访问返回的时候就已经变成不支持的语言了,这样再改可能就要改到精益模块里啦
但是问题突然来了,既然已经啥都知道了为啥不学习一下c#给转换一下,就不用考虑Unicode的问题了,于是便开始了第一个c#的学习之路
首先下载精益C#助手和精益框架
https://bbs.125.la/thread-14384640-1-1.html
https://bbs.125.la/thread-14384223-1-1.html
不得不说妙哉
从源码中可以发现,有一个js1和tk函数需要条用传入的参数是你要翻译的词语,用易语言调试出js的原型直接保存在文本里(因为c#没有类似易语言资源的文件可以保存任何格式的文件)
http://att.125.la/data/attachment/forum/201910/11/204843elrojawaba115hdb.png
首先用易语言编程助手调试下 看看是否能调通
http://att.125.la/data/attachment/forum/201910/11/205231kukgk5gntgnsgnyn.png
发现输出结果与易语言调试输出结果一致,接下来再来测试api
http://att.125.la/data/attachment/forum/201910/11/205558r65r2mmfmfgis2ri.png

都测试完毕后开始引入框架dll,怼代码,post部分代码直接生成
http://att.125.la/data/attachment/forum/201910/11/205722rhzfq7cfjxj0ffuf.png
根据助手里的例子,怼上运行js部分代码
http://att.125.la/data/attachment/forum/201910/11/205859kbzt8sd5t875ig75.png
最后加一个读目录下js文件的文件流
http://att.125.la/data/attachment/forum/201910/11/210006rwkmwe6z81m8yss6.png
然后就大功告成啦!
http://att.125.la/data/attachment/forum/201910/11/210117k4oapj4qkwxj4pjq.png

最后附上源码 求支持undefined

**** Hidden Message *****




James 发表于 2019-10-17 14:33:49

这个不错哦 支持一下
页: [1]
查看完整版本: [原创]分享把一个易语言翻译模块翻译成C#