`

ruby Tk版本的google翻译机

阅读更多
过去写的那个调用google翻译的翻译脚本,一直在用。那个版本只能处理单个单词,如果要翻译一行或者一段语句,尽管稍微修改下就可以,但失去了我想要 的便利性。今天看了看TK,顺手写了个GUI版本的,采用一次请求一个线程,倒是便捷不少。在windows上,你需要到这里下载安装ActiveTcl才可以运行。
代码如下:
ruby 代码
 
  1. require 'net/http'  
  2. require 'tk'  
  3. require 'logger'  
  4. #设置代理  
  5. $proxy_addr='x.xx.x'  
  6. $proxy_port='80'  
  7. class GoogleTranslate  
  8.   def initialize(url)  
  9.     @log = Logger.new("translate.log")  
  10.     @log.level = Logger::WARN  
  11.     @url=url  
  12.     ph={'padx'=>50,'pady'=>10}  
  13.     root=TkRoot.new{ title 'google 翻译程序'}  
  14.     top=TkFrame.new(root) {background "white"}  
  15.       
  16.     #checkbutton,用于选择翻译类别  
  17.     checked=TkVariable.new  
  18.     TkCheckButton.new(top) do  
  19.       text 'cn-en'  
  20.       variable checked  
  21.       pack({'padx'=>8,'pady'=>10})  
  22.     end    
  23.     TkLabel.new(top){ text 'Enter text:';pack(ph)}  
  24.       
  25.     @text=TkVariable.new  
  26.     @result=TkVariable.new  
  27.     TkEntry.new(top,'textvariable'=>@text,'width'=>40).pack(ph)  
  28.     pig_b=TkButton.new(top){text '翻译';pack ph}  
  29.     #翻译按钮事件  
  30.     pig_b.command{ translate(checked.value) }  
  31.       
  32.     TkLabel.new(top){ text 'Translate Result:';pack(ph)}  
  33.     TkEntry.new(top,'textvariable'=>@result,'width'=>40).pack(ph)  
  34.     pig_a=TkButton.new(top) do  
  35.       text 'Exit'  
  36.       pack ph  
  37.       command {exit}  
  38.     end  
  39.     top.pack('fill'=>'both','side'=>'top')  
  40.   end  
  41.   def translate(checked)  
  42.     langpair='en|zh-CN'   
  43.     langpair='zh-CN|enif checked=='1'  
  44.     #开一个新线程处理  
  45.     Thread.new do  
  46.       begin  
  47.           #使用了代理,如果没有,将Proxy方法去掉        response=Net::HTTP.Proxy($proxy_addr,$proxy_port).post_form(URI.parse(@url),
  48.               {'text'=>@text.value,'langpair'=>langpair})  
  49.         response.body =~ /
  50.         @result.value=$1  
  51.         rescue Exception=>e  
  52.         @log.error(e)  
  53.       end  
  54.     end  
  55.       
  56.   end  
  57. end  
  58. GoogleTranslate.new("http://translate.google.com/translate_t")  
  59. Tk.mainloop  
分享到:
评论

相关推荐

    Ruby/tk学习资料

    ### Ruby/tk 学习资料知识点详述 #### 核心概念:Ruby/tk简介与基本操作 **标题**:“Ruby/tk学习资料” **描述**:“自己整理的Ruby/tk学习资料!” **标签**:“Ruby” **部分内容**:RUBY/tk学习文档 在本...

    ruby tk gem

    在Ruby 1.9版本中,安装这个gem可能会遇到一些特定的挑战,因此我们将详细讨论如何在Ruby 1.9环境下正确安装`tk-win` gem。 首先,`tk-win` gem 是专门为Windows操作系统设计的,因为它包含了与Windows系统兼容的Tk...

    安装rvm,把ruby版本提升至3.0.0

    在IT行业中,管理和切换Ruby版本是一项常见的任务,特别是在开发环境中,不同的项目可能依赖于不同版本的Ruby。`RVM`(Ruby Version Manager)是解决这一问题的利器,它允许开发者在多个Ruby版本之间轻松切换。本文...

    ruby在unbuntu的安装版本

    本指南将详细讲解如何在Ubuntu系统上安装Ruby 2.1.5这一特定版本。 首先,确保你的Ubuntu系统是最新的。打开终端并运行以下命令来更新系统软件包: ```shell sudo apt-get update sudo apt-get upgrade ``` 接...

    ruby多版本安装包rar

    在IT行业中,尤其是在Web开发领域,Ruby是Rails框架的基础,因此掌握Ruby的安装和管理多版本是非常重要的。 标题“ruby多版本安装包rar”暗示我们将讨论如何在Windows系统上安装和管理多个Ruby版本。RubyInstaller...

    Ruby-bladetranslate是一款用ruby打造的简单控制台翻译软件

    这款工具的实现主要依赖于调用第三方翻译API,例如Google Translate或Bing Translator,将翻译服务的接口与Ruby代码相结合,实现文本的自动翻译。 在使用blade-translate时,用户首先需要安装必要的依赖库,这通常...

    ruby语言最新版本

    Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。 您可以在 www.ruby-lang.org 的 Ruby 邮件列表上找到松本行弘(まつもとゆきひろ/Yukihiro Matsumoto...

    ruby稳定版本1.9.3

    sencha cmd 需要的第三方包,是一个完全面向对象的语言哟,堪比perl

    Ruby方面的英文翻译

    Ruby是一种精心平衡设计的编程语言,由Yukihiro“matz”Matsumoto于1995年创建。它的设计理念是结合了Perl、Smalltalk、Eiffel、Ada和Lisp等语言的优点,旨在实现函数式编程与命令式编程的和谐共存。Matsumoto的目标...

    基于Ruby编写的命令行注入版本.zip

    基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby编写的命令行注入版本.zip基于Ruby...

    Ruby-Mobility可拔插的Ruby翻译框架

    Ruby-Mobility是一款强大的、可拔插的Ruby翻译框架,专为解决多语言支持而设计。这个框架的主要目标是提供一种灵活、高效且易于集成的方式来处理应用中的国际化(i18n)问题。Ruby-Mobility的核心设计理念在于解耦...

    Ruby版本管理工具ruby-build.zip

    ruby-build 是一个 rbenv 插件,它提供了一个 rbenv install 命令来在类 UNIX 系统上编译和安装不同版本的 Ruby。你还可以在需要精确控制 Ruby 版本安装的环境中使用不带 rbenv 的 ruby-build。用法在开始之前,...

    Ruby-rubybuild编译和安装Ruby

    在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build`来编译和安装Ruby。 `rbenv`是一个用于管理全局或用户级别的Ruby版本的工具,它...

    ruby安装升级及命令自行编译安装非APTGET方式安装升级的办法

    执行命令`ruby -v`检查Ruby版本,应显示为`ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]`,表明安装成功。 #### 自定义升级策略 **优势分析** 手动编译安装的最大优势在于提供了极高的灵活性。当新的...

    ruby-1.8.6.zip

    Ruby 1.8.6 是一个古老的 Ruby 语言版本,发布于2009年,是许多开发者早期学习和构建应用程序的重要版本。Ruby 是一种面向对象的、动态类型的编程语言,以其简洁、清晰的语法和强大的元编程能力而受到欢迎。在 Ruby ...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    ruby 1.9.3 p484稳定版本

    Ruby 1.9.3 p484 是一个重要的编程语言版本,专为Windows平台设计,提供了稳定且高效的运行环境。Ruby是一种动态、面向对象的脚本语言,因其简洁、优雅的语法和强大的元编程能力而深受开发者喜爱。在1.9.3这个版本中...

    ruby最新版稳定版

    Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、...

    Ruby-fryfish的一个简单的ruby版本管理器

    标题 "Ruby-fryfish" 提供的信息表明,这是一个与 Ruby 语言相关的项目,具体来说,它是一个用于管理 Ruby 版本的工具。在 IT 领域,版本管理器允许开发者在不同的项目之间轻松切换所需的 Ruby 版本,确保每个项目都...

    贝岭的matlab的代码-google_translate:Ruby中的Google翻译API-gem

    标题中的“贝岭的matlab的代码-google_translate:Ruby中的Google翻译API-gem”表明这是一个MATLAB项目,其中包含了利用Ruby语言编写的Google翻译API接口。这个项目可能旨在为MATLAB环境提供一个桥梁,以便在处理自然...

Global site tag (gtag.js) - Google Analytics