利用google在线翻译制作自己的翻译程序之ruby版

简介:
刚学ruby时写的工具,我自己一直在用,放在桌面上,遇到不懂单词就得问它。发在railscn上,ranchgirl修改的更为ruby way。

 受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


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 
文章转自庄周梦蝶  ,原文发布时间5.17
目录
相关文章
|
8月前
|
Web App开发
在 HTML 中禁用 Chrome 浏览器的 Google 翻译功能
在 html 标签中添加 translate=“no” 属性,浏览器将不会翻译整个页面。
373 0
|
自然语言处理 JavaScript
vue3-ts-vite:Google 多语言调试 / 网页中插入谷歌翻译元素 / 翻译
vue3-ts-vite:Google 多语言调试 / 网页中插入谷歌翻译元素 / 翻译
333 0
|
6月前
|
自然语言处理 安全 Shell
Linux 提权-SUID/SGID_1 本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个别注释补充。
接下来,让我们看看 SUID3NUM 在枚举 SUID 二进制文件方面的表现如何。 3.2、枚举 SUID 二进制文件 – SUID3NUM 我们将用来枚举 SUID 二进制文件的第二个工具是 SUID3NUM。这是一个很棒的工具,因为它是专门为枚举 SUID 二进制文件而创建的。但这还不是全部,它还提供了可用于提升权限的命令(命令从 GTFOBins 中提取)。 这还不是最好的部分,SUID3NUM 还具有内置的 autopwn 功能,可以通过 -e 开关激活! 在 OSCP 考试中也使用此工具,只要您不使用自动利用功能。 3.2.1、下载并执行 SUID3NUM 我们可以从 GitHubs
55 0
|
8月前
|
JavaScript 测试技术
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
【sgGoogleTranslate】自定义组件:基于Vue.js用谷歌Google Translate翻译插件实现网站多国语言开发
|
缓存 监控 数据库
使用Ruby构建可扩展的Web应用程序
在当今科技驱动的世界中,Web应用程序成为了企业和个人进行业务活动、提供服务和与用户互动的重要方式。而Ruby作为一种简洁、优雅且易于学习的编程语言,已经成为许多开发者的选择。本篇博客将介绍如何使用Ruby构建可扩展的Web应用程序。
113 0
|
Web App开发 网络协议 搜索推荐
完美修复google翻译失效的问题
使用chrome的小伙伴应该都知道有个页面一键翻译,对于英语相当蹩脚的我来说灰常好用,然而…
199 0
|
Web App开发 API 网络安全
Google 翻译插件不能用了怎么办
Google 翻译退出中国
4869 4
Google 翻译插件不能用了怎么办
|
机器学习/深度学习 数据采集 自然语言处理
谷歌为1000+「长尾」语言创建机器翻译系统,Google翻译已支持部分小众语言
谷歌为1000+「长尾」语言创建机器翻译系统,Google翻译已支持部分小众语言
144 0
|
网络协议 JavaScript Java
Google Java编程风格规范(2020年4月原版翻译)
Google Java Style Guide 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则,
1184 0
|
机器学习/深度学习 编解码 自然语言处理
Paper:2017年的Google机器翻译团队《Transformer:Attention Is All You Need》翻译并解读(二)
Paper:2017年的Google机器翻译团队《Transformer:Attention Is All You Need》翻译并解读
Paper:2017年的Google机器翻译团队《Transformer:Attention Is All You Need》翻译并解读(二)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等