command_translate 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/translate +82 -0
- data/lib/command_translate.rb +45 -0
- data/lib/command_translate/logger.rb +18 -0
- data/lib/command_translate/translation.rb +30 -0
- data/lib/command_translate/version.rb +3 -0
- metadata +78 -0
checksums.yaml
ADDED
@@ -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
|
data/bin/translate
ADDED
@@ -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
|
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: []
|