command_translate 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 67d5aa10a32d119228e4dc68e3ef8736375f9c52
4
+ data.tar.gz: bd943e96a0c1a4318ba98ea926d3fc4df4411296
5
+ SHA512:
6
+ metadata.gz: 1f514f3ab7d86f4bcbc1644338e5a67e2e506cf22b12731d4fcee12a926b50d2e907b6d566a0147ff50bd8b9677c4e3ab92e5a71321a85a062d0ae4ffc540091
7
+ data.tar.gz: 0104f14b8234243f33f4cf80a2fdd4cdbcb4d97b8cf2db6acce8fb60c2f91ce7c068eb9d1d54a7aa7eaa5de5cb2a1f82705863c7cad5d4863401a6120f5dd3f1
@@ -0,0 +1,82 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'command_translate'
4
+
5
+ LANGUAGES = {
6
+ :af => "Afrikaans",
7
+ :sq => "Albanian",
8
+ :ar => "Arabic",
9
+ :az => "Azerbaijani",
10
+ :eu => "Basque",
11
+ :bn => "Bengali",
12
+ :be => "Belarusian",
13
+ :bg => "Bulgarian",
14
+ :ca => "Catalan",
15
+ :'zh-CN' => "Chinese Simplified",
16
+ :'zh-TW' => "Chinese Traditional",
17
+ :hr => "Croatian",
18
+ :cs => "Czech",
19
+ :da => "Danish",
20
+ :nl => "Dutch",
21
+ :en => "English",
22
+ :eo => "Esperanto",
23
+ :et => "Estonian",
24
+ :tl => "Filipino",
25
+ :fi => "Finnish",
26
+ :fr => "French",
27
+ :gl => "Galician",
28
+ :ka => "Georgian",
29
+ :de => "German",
30
+ :el => "Greek",
31
+ :gu => "Gujarati",
32
+ :ht => "Haitian Creole",
33
+ :iw => "Hebrew",
34
+ :hi => "Hindi",
35
+ :hu => "Hungarian",
36
+ :is => "Icelandic",
37
+ :id => "Indonesian",
38
+ :ga => "Irish",
39
+ :it => "Italian",
40
+ :ja => "Japanese",
41
+ :kn => "Kannada",
42
+ :ko => "Korean",
43
+ :la => "Latin",
44
+ :lv => "Latvian",
45
+ :lt => "Lithuanian",
46
+ :mk => "Macedonian",
47
+ :ms => "Malay",
48
+ :mt => "Maltese",
49
+ :no => "Norwegian",
50
+ :fa => "Persian",
51
+ :pl => "Polish",
52
+ :pt => "Portuguese",
53
+ :'pt-br' => "Brazilian Portuguese",
54
+ :ro => "Romanian",
55
+ :ru => "Russian",
56
+ :sr => "Serbian",
57
+ :sk => "Slovak",
58
+ :sl => "Slovenian",
59
+ :es => "Spanish",
60
+ :sw => "Swahili",
61
+ :sv => "Swedish",
62
+ :ta => "Tamil",
63
+ :te => "Telugu",
64
+ :th => "Thai",
65
+ :tr => "Turkish",
66
+ :uk => "Ukrainian",
67
+ :ur => "Urdu",
68
+ :vi => "Vietnamese",
69
+ :cy => "Welsh",
70
+ :yi => "Yiddish",
71
+ }
72
+
73
+ arg = ARGV[0] ? ARGV[0].downcase : ""
74
+
75
+ case arg
76
+ when "help"
77
+ CommandTranslate.help
78
+ when "languages"
79
+ CommandTranslate.languages
80
+ else
81
+ CommandTranslate.translate
82
+ end
@@ -0,0 +1,45 @@
1
+ require 'command_translate/version.rb'
2
+ require 'command_translate/translation.rb'
3
+ require 'command_translate/logger.rb'
4
+ require 'net/http'
5
+ require 'json'
6
+ require 'terminal-table'
7
+
8
+ module CommandTranslate
9
+ def self.translate
10
+ options = ARGV
11
+ begin
12
+ from, to = options.shift.split(":")
13
+ if validate_languages(from, to)
14
+ text = options.join(" ")
15
+ Logger.print("Translating: #{text} (#{LANGUAGES[from.to_sym]} to #{LANGUAGES[to.to_sym]})")
16
+ result = Translation.new(text, from, to).translation
17
+ Logger.print(result)
18
+ else
19
+ Logger.info "Invalid language(s)! View all supported languages typing 'translate languages'."
20
+ end
21
+ rescue Exception => e
22
+ instructions
23
+ end
24
+ end
25
+
26
+ def self.instructions
27
+ Logger.info "Translator command line"
28
+ Logger.info "To use just run: translate from:to text"
29
+ Logger.info "e.g.: translate en:es \"My dog is crazy\""
30
+ end
31
+
32
+ def self.help
33
+ instructions
34
+ end
35
+
36
+ def self.languages
37
+ rows = LANGUAGES.collect {|k,v| [v, k] }
38
+ languages_table = Terminal::Table.new :headings => ['Language', 'Symbol'], :rows => rows
39
+ Logger.info languages_table
40
+ end
41
+
42
+ def self.validate_languages(from, to)
43
+ LANGUAGES.has_key?(from.to_sym) && LANGUAGES.has_key?(to.to_sym)
44
+ end
45
+ end
@@ -0,0 +1,18 @@
1
+ require 'logger'
2
+ require 'colorize'
3
+
4
+ module CommandTranslate
5
+
6
+ module Logger
7
+ @log = ::Logger.new(STDOUT)
8
+
9
+ def self.print(message)
10
+ @log << "=> ".green + message.white + "\n"
11
+ end
12
+
13
+ def self.info(message)
14
+ @log << "#{message}\n"
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: UTF-8
2
+
3
+ class Translation
4
+ attr_accessor :text, :from, :to, :translation
5
+
6
+ def initialize(text, from, to)
7
+ @text = text
8
+ @from = from
9
+ @to = to
10
+ @translation = translate.squeeze(" ")
11
+ end
12
+
13
+ def translate
14
+ encoded_url = URI.encode(url)
15
+ response = Net::HTTP.get(URI(encoded_url))
16
+
17
+ # use JSON parser to avoid to use eval
18
+ translations = JSON.parse(response.squeeze(","))
19
+
20
+ if translations[0].size > 1
21
+ translations[0].collect {|x| x[0] }.join(" ")
22
+ else
23
+ translations[1][0][1].nil? ? translations[0][0][0] : translations[1][0][1].join(", ")
24
+ end
25
+ end
26
+
27
+ def url
28
+ "http://translate.google.com.br/translate_a/t?client=t&text=#{text}&hl=#{to}&sl=#{from}&ie=UTF-8&oe=UTF-8"
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module CommandTranslate
2
+ VERSION = '0.0.2'
3
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: command_translate
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - bfb
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: terminal-table
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: It uses Google Translate to translate words directly into the terminal.
42
+ email: b.fbohn@gmail.com
43
+ executables:
44
+ - translate
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - bin/translate
49
+ - lib/command_translate/logger.rb
50
+ - lib/command_translate/translation.rb
51
+ - lib/command_translate/version.rb
52
+ - lib/command_translate.rb
53
+ homepage: https://github.com/bfb/command_translate
54
+ licenses:
55
+ - MIT
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.0.7
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: A simple command line translator.
78
+ test_files: []