Sha256: a0910a967b58de2be8a4ca90c2674d64eb6bcba7d9525448dc725ae6f668f536

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

#!/usr/bin/env ruby

$:.unshift(File::join(File::dirname(File::dirname(__FILE__)), "lib"))

require 'rubygems' unless RUBY_VERSION =~ /1.9.*/
require 'google_translate'

#$KCODE='u'

class Translate

  USAGE= <<-TEXT
    Usage:
      translate list                 - displays the list of supported languages
      translate en:ru "hello world"  - translates from en to ru
      translate ru "hello world"     - translated from auto-detected language to ru 
  TEXT

  def initialize
    @translator = Google::Translator.new
  end

  def print_languages list, title
    puts title
    puts list.join(', ')
  end

  def display result
    r1, r2 = *result

    if r2.empty?
      puts r1
    else
      puts r1
      puts r2      
    end
    
    # if RUBY_PLATFORM =~ /mswin32/
    # #  File.open("temp.txt", "w") {|f| f.write text }
    # #  %x[notepad temp.txt]
    # 
    #   puts (r2.empty? ? r1 : r2)
    # else
    #  puts (r2.empty? ? r1 : r2)
    # end
  end

  def run
    if(ARGV.size == 0)
      puts USAGE and return
    end

    case ARGV.shift

    when /(-v)|(--version)/ then
      puts "Version: #{File.open(File::dirname(__FILE__) + "/../VERSION").readlines().first}"
    when 'list' then
      hash = @translator.supported_languages

      print_languages hash[:from_languages], "From Languages:"
      print_languages hash[:to_languages], "To Languages:"
    #when 'detect' then
    #  language = @translator.detect_language(ARGV.shift)
    #
    #  puts "Language: #{language.inspect}"
    when /(.*):(.*)/ then
      from_text = ARGV.join(' ')
      from = $1
      to = $2

      display(@translator.translate(from.to_sym, to.to_sym, from_text))
    #when /(.*)/ then
    #  from_text = ARGV.join(' ')
    #
    #  from = @translator.detect_language(from_text)['language']
    #  to = $1
    #
    #  begin
    #    display(@translator.translate(from.to_sym, to.to_sym, from_text))
    #  rescue Exception => e
    #    puts "Error: " + e.message
    #  end
    end
  end
end

Translate.new.run

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
google-translate-0.8.5 bin/translate