<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


    主站蜘蛛池模板: av成人免费电影| 久久精品熟女亚洲av麻豆| a色毛片免费视频| 国产成人精品亚洲精品| 成人一级免费视频| 亚洲国产精品13p| 久青草视频在线观看免费| 亚洲日韩中文字幕在线播放| 三年片免费观看大全国语| 久久精品国产亚洲网站| 91视频免费网址| 亚洲国产中文在线二区三区免| 1024免费福利永久观看网站| 亚洲天堂一区二区三区四区| 老司机在线免费视频| 亚洲欧美日韩综合俺去了| 免费欧洲毛片A级视频无风险| 国产精品亚洲综合天堂夜夜| 亚洲成av人片在线观看天堂无码| eeuss影院www天堂免费| 亚洲av综合色区| AA免费观看的1000部电影| 亚洲精品无码你懂的| 精品国产亚洲一区二区在线观看| 你懂得的在线观看免费视频| 亚洲精品美女久久久久9999| 成人午夜性A级毛片免费| 色屁屁在线观看视频免费| 亚洲精品蜜桃久久久久久| 成人黄色免费网站| 国产精品亚洲а∨天堂2021| 亚洲无av在线中文字幕| 青青青国产在线观看免费网站| 亚洲成AV人片高潮喷水| 亚洲精品无码永久在线观看你懂的| 16女性下面无遮挡免费| 久久精品国产亚洲AV天海翼| 亚洲精品V欧洲精品V日韩精品| 毛片网站免费在线观看| 中国极品美軳免费观看| 精品久久久久久亚洲精品|