DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Command Line Translation With Google Api

05.01.2011
| 3234 views |
  • submit to reddit
        // Find quickly the translation of something without having to go to the browser

// Example (translate 'my name is Lloyd Moore' from english to french :
//     translate en es my name is Lloyd Moore and I am happy
//     > mi nombre es Lloyd Moore y soy feliz


#!/usr/bin/env ruby
#
# author: Lloyd Moore
# version 0.3
#
# changes: Sat Apr 30 11:25:49 CEST 2011
#   allowed for conversion of utf-8 characters
#   with an iconv hack

require 'rubygems'
require 'json'
require 'open-uri'
require 'cgi'
require 'iconv'

key         = # INSERT YOUR GOOGLE API KEY HERE 
source      = ARGV.shift
target      = ARGV.shift
query       = CGI.escape((ARGV.map {|x| "#{x} "}).to_s)
params      = "key=#{key}&source=#{source}&target=#{target}&q=#{query}"
uri         = "https://www.googleapis.com/language/translate/v2?#{params}"
url         = URI.parse(uri)
json        = url.open.read
out         = JSON.parse(json)
translation = out["data"]["translations"][0]["translatedText"]
nicer       = Iconv.iconv("UTF-8", "UTF-8", translation)
puts nicer