<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    ruby TK版本的google翻譯機

    Posted on 2007-09-04 15:55 dennis 閱讀(695) 評論(0)  編輯  收藏 所屬分類: 動態語言my open-source
        過去寫的那個調用google翻譯的翻譯腳本,一直在用。那個版本只能處理單個單詞,如果要翻譯一行或者一段語句,盡管稍微修改下就可以,但失去了我想要的便利性。今天看了看TK,順手寫了個GUI版本的,采用一次請求一個線程,倒是便捷不少。在windows上,你需要到這里下載安裝ActiveTcl才可以運行。
    代碼如下:
    require 'net/http'
    require 
    'tk'
    require 
    'logger'
    #設置代理
    $proxy_addr='x.x.x.x'
    $proxy_port
    ='80'
    class GoogleTranslate
     
    def initialize(url)
        @log 
    = Logger.new("translate.log")
        @log.level 
    = Logger::WARN
        @url
    =url
        ph
    ={'padx'=>50,'pady'=>10}
        root
    =TkRoot.new{ title 'google 翻譯程序'}
        top
    =TkFrame.new(root) {background "white"}
        
        
    #checkbutton,用于選擇翻譯類別
        checked=TkVariable.new
        TkCheckButton.new(top) do
          text 
    'cn-en'
          variable checked
          pack({
    'padx'=>8,'pady'=>10})
        end  
        TkLabel.new(top){ text 
    'Enter text:';pack(ph)}
        
        @text
    =TkVariable.new
        @result
    =TkVariable.new
        TkEntry.new(top,
    'textvariable'=>@text,'width'=>40).pack(ph)
        pig_b
    =TkButton.new(top){text '翻譯';pack ph}
        
    #翻譯按鈕事件
        pig_b.command{ translate(checked.value) }
        
        TkLabel.new(top){ text 
    'Translate Result:';pack(ph)}
        TkEntry.new(top,
    'textvariable'=>@result,'width'=>40).pack(ph)
        pig_a
    =TkButton.new(top) do
          text 
    'Exit'
          pack ph
          command {exit}
        end
        top.pack(
    'fill'=>'both','side'=>'top')
      end
      
    def translate(checked)
        langpair
    ='en|zh-CN' 
        langpair
    ='zh-CN|en' if checked=='1'
        
    #開一個新線程處理
        Thread.new do
          begin
            response
    =Net::HTTP.Proxy($proxy_addr,$proxy_port).post_form(URI.parse(@url),
                {
    'text'=>@text.value,'langpair'=>langpair})
            response.body 
    =~ /<div id=result_box dir=ltr>(.*?)<\/div>/
            @result.value
    =$1
            rescue Exception
    =>e
            @log.error(e)
          end
        end
        
      end
    end
    GoogleTranslate.new(
    "http://translate.google.com/translate_t")
    Tk.mainloop


    主站蜘蛛池模板: 日韩免费高清视频| 黄色网站软件app在线观看免费| 性做久久久久免费观看| 成人免费一级毛片在线播放视频| 午夜精品免费在线观看| 四虎国产成人永久精品免费| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 91麻豆国产免费观看| 无码成A毛片免费| 99热在线免费观看| 四虎最新永久免费视频| 91黑丝国产线观看免费| 免费国产作爱视频网站| 好吊妞788免费视频播放| 日韩免费视频播放| 亚洲日韩VA无码中文字幕| 在线观看国产区亚洲一区成人| 夜夜春亚洲嫩草影院| 久久亚洲精品中文字幕无码| 精品日韩亚洲AV无码一区二区三区| 亚洲视频在线观看免费视频| 亚洲国产成人va在线观看网址| 国产亚洲玖玖玖在线观看| 亚洲国产成人久久精品大牛影视| 另类专区另类专区亚洲| 一区二区三区免费视频网站| 天黑黑影院在线观看视频高清免费| 午夜视频免费在线观看| 成人免费一级毛片在线播放视频| 最新69国产成人精品免费视频动漫| 免费人妻av无码专区| 亚洲性猛交XXXX| 亚洲国色天香视频| 校园亚洲春色另类小说合集| 香蕉免费在线视频| 又黄又爽又成人免费视频| 免费成人午夜视频| 亚洲视频一区调教| 中文有码亚洲制服av片| 九九九精品视频免费| 日本免费人成视频在线观看|