利用google在线翻译制作自己的翻译程序之ruby版
2023-03-09 22:23:02 时间
刚学ruby时写的工具,我自己一直在用,放在桌面上,遇到不懂单词就得问它。发在railscn上,ranchgirl修改的更为ruby way。
受blogjava上的帖子启发,实在是个有趣的主意,写了个ruby版本的,对俺这等英语一般的同学来说,google在线翻译经常使用呐,原贴之java版
http://www.blogjava.net/ekinglong/archive/2006/11/12/80704.html?Pending=true#Post
ranchgirl修改的版本,没有使用递归:
受blogjava上的帖子启发,实在是个有趣的主意,写了个ruby版本的,对俺这等英语一般的同学来说,google在线翻译经常使用呐,原贴之java版
http://www.blogjava.net/ekinglong/archive/2006/11/12/80704.html?Pending=true#Post
require 'net/http'
def translate
txt=STDIN.gets
break if txt.strip=='e' or txt.strip=='exit'
temp=txt.split(' ')
if temp[1]=='1' or temp.size==1
langpair='en|zh-CN'
else
langpair='zh-CN|en'
end
#使用代理
$proxy_addr = '127.0.0.1'
$proxy_port = 80
response = Net::HTTP.Proxy($proxy_addr, $proxy_port).post_form(URI.parse("http://translate.google.com/translate_t"),{'text'=>temp[0],'langpair'=>langpair})
response.body =~ /<div id=result_box dir=ltr>(.*)<\/div>/
result = $1
puts '翻译内容:'+temp[0]
puts 'google返回:'+result
puts '-------------------退出请打e或者exit---------------'
translate
end
translate
def translate
txt=STDIN.gets
break if txt.strip=='e' or txt.strip=='exit'
temp=txt.split(' ')
if temp[1]=='1' or temp.size==1
langpair='en|zh-CN'
else
langpair='zh-CN|en'
end
#使用代理
$proxy_addr = '127.0.0.1'
$proxy_port = 80
response = Net::HTTP.Proxy($proxy_addr, $proxy_port).post_form(URI.parse("http://translate.google.com/translate_t"),{'text'=>temp[0],'langpair'=>langpair})
response.body =~ /<div id=result_box dir=ltr>(.*)<\/div>/
result = $1
puts '翻译内容:'+temp[0]
puts 'google返回:'+result
puts '-------------------退出请打e或者exit---------------'
translate
end
translate
ranchgirl修改的版本,没有使用递归:
require 'net/http'
def usage
"usage: word [lang2 [lang1]]\n" +
"Translate word from lang1 (default en, English) to lang2 (default es, Spanish)\n" +
"ISO language code: http://www.unicode.org/unicode/onlinedat/languages.html"
end
def translate
arr = ARGV
if !arr[0] then puts usage; return end
arr[1] = "es" unless arr[1]
arr[2] = "en" unless arr[2]
langpair = "#{arr[2]}|#{arr[1]}"
response = Net::HTTP.post_form(URI.parse("http://translate.google.com/translate_t"),
{:text => arr[0], :langpair => langpair})
response.body =~ /<div id=result_box dir=ltr>(.*)<\/div>/
result = $1
result = "No #{langpair} translation available for #{arr[0]}" if result.size == 0
puts result
end
translate
def usage
"usage: word [lang2 [lang1]]\n" +
"Translate word from lang1 (default en, English) to lang2 (default es, Spanish)\n" +
"ISO language code: http://www.unicode.org/unicode/onlinedat/languages.html"
end
def translate
arr = ARGV
if !arr[0] then puts usage; return end
arr[1] = "es" unless arr[1]
arr[2] = "en" unless arr[2]
langpair = "#{arr[2]}|#{arr[1]}"
response = Net::HTTP.post_form(URI.parse("http://translate.google.com/translate_t"),
{:text => arr[0], :langpair => langpair})
response.body =~ /<div id=result_box dir=ltr>(.*)<\/div>/
result = $1
result = "No #{langpair} translation available for #{arr[0]}" if result.size == 0
puts result
end
translate
文章转自庄周梦蝶 ,原文发布时间5.17
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的