oversetter 1.0.0
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/CHANGELOG.md +5 -0
- data/bin/oversetter +193 -0
- data/lib/oversetter.rb +193 -0
- data/lib/oversetter/cli/glosbe.rb +38 -0
- data/lib/oversetter/cli/hablaa.rb +61 -0
- data/lib/oversetter/cli/yandex.rb +40 -0
- data/lib/oversetter/glosbe.rb +4 -0
- data/lib/oversetter/glosbe/example.rb +36 -0
- data/lib/oversetter/glosbe/text.rb +29 -0
- data/lib/oversetter/glosbe/translate.rb +113 -0
- data/lib/oversetter/hablaa.rb +6 -0
- data/lib/oversetter/hablaa/example.rb +40 -0
- data/lib/oversetter/hablaa/getlangs.rb +33 -0
- data/lib/oversetter/hablaa/similar.rb +39 -0
- data/lib/oversetter/hablaa/text.rb +33 -0
- data/lib/oversetter/hablaa/translate.rb +53 -0
- data/lib/oversetter/version.rb +5 -0
- data/lib/oversetter/yandex.rb +5 -0
- data/lib/oversetter/yandex/detect.rb +26 -0
- data/lib/oversetter/yandex/getlangs.rb +39 -0
- data/lib/oversetter/yandex/text.rb +33 -0
- data/lib/oversetter/yandex/translate.rb +43 -0
- metadata +294 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
%w{httpi multi_json multi_xml rainbow}.map { |lib| require lib }
|
3
|
+
|
4
|
+
module Oversetter
|
5
|
+
class Yandex
|
6
|
+
# Detects the language for a given word or phrase.
|
7
|
+
class Detect
|
8
|
+
# @param search [String] The word or phrase for which to detect the language.
|
9
|
+
# @param params [Hash] The search parameters to use.
|
10
|
+
def detect(search, params)
|
11
|
+
func, result = 'detect', nil
|
12
|
+
det = Oversetter::Yandex.new
|
13
|
+
result = det.get_word(search, func, params, result)
|
14
|
+
result = MultiJson.load(result)
|
15
|
+
if result != nil && result['code'] == 200
|
16
|
+
lang = result['lang']
|
17
|
+
label = 'Detect language'
|
18
|
+
Oversetter.label(label)
|
19
|
+
puts "#{lang}"
|
20
|
+
else
|
21
|
+
puts "Yandex returned an empty string."
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
%w{httpi multi_json multi_xml rainbow}.map { |lib| require lib }
|
3
|
+
|
4
|
+
module Oversetter
|
5
|
+
class Yandex
|
6
|
+
# Lists supported translation 'directions,' pairs of source and target languages.
|
7
|
+
class Getlangs
|
8
|
+
# @param search [String] The word or phrase for which to detect the language.
|
9
|
+
# @param params [Hash] The search parameters to use.
|
10
|
+
def get_lang(search, params)
|
11
|
+
func, result = 'getLangs', nil
|
12
|
+
lang = Oversetter::Yandex.new
|
13
|
+
result = lang.get_word(search, func, params, result)
|
14
|
+
result = MultiJson.load(result)
|
15
|
+
dirs = result['dirs']
|
16
|
+
if result['langs'] != nil
|
17
|
+
langs = result['langs']
|
18
|
+
end
|
19
|
+
x, y, label = 0, dirs.length - 1, 'Translation directions'
|
20
|
+
Oversetter.label(label)
|
21
|
+
while x <= y
|
22
|
+
print "#{dirs[x]}"
|
23
|
+
print ', '
|
24
|
+
x += 1
|
25
|
+
end
|
26
|
+
puts ''
|
27
|
+
if langs != nil
|
28
|
+
label = 'Language names'
|
29
|
+
Oversetter.label(label)
|
30
|
+
langs.map { |k,v|
|
31
|
+
print "#{k} -> #{v}"
|
32
|
+
print ', '
|
33
|
+
}
|
34
|
+
puts ''
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
%w{httpi multi_json multi_xml open-uri rainbow}.map { |lib| require lib }
|
3
|
+
|
4
|
+
module Oversetter
|
5
|
+
# Yandex.com's service provides translations and detections.
|
6
|
+
class Yandex
|
7
|
+
# Fetches dynamically generated URL. Functions are translate,
|
8
|
+
# detect, and getLangs.
|
9
|
+
#
|
10
|
+
# @param search [String] The word or phrase to search for.
|
11
|
+
# @param func [String] The search function to use.
|
12
|
+
# @param params [Hash] The search parameters to use.
|
13
|
+
# @param result [String] The search response.
|
14
|
+
def get_word(search, func, params, result)
|
15
|
+
search = URI.encode(search)
|
16
|
+
prefix = 'https://translate.yandex.net/api/v1.5/tr.json/'
|
17
|
+
word, pcont = "#{prefix}#{func}?", []
|
18
|
+
if func != 'getLangs' then pcont.push "text=#{search}&"; end
|
19
|
+
params.map { |k, v|
|
20
|
+
if k == :lang then pcont.push "lang=#{v}&"; end
|
21
|
+
if k == :ui then pcont.push "ui=#{v}&"; end
|
22
|
+
}
|
23
|
+
if func == 'translate' || func == 'detect' then pcont.push 'format=plain&'; end
|
24
|
+
if func == 'translate' then pcont.push 'options=1&'; end
|
25
|
+
apikey = ENV['YANDEX']
|
26
|
+
pcont.push "key=#{apikey}"
|
27
|
+
url = "#{word}#{pcont.join}"
|
28
|
+
request = HTTPI::Request.new(url)
|
29
|
+
getter = HTTPI.get(request)
|
30
|
+
result = getter.body
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
%w{httpi multi_json multi_xml open-uri rainbow}.map { |lib| require lib }
|
3
|
+
|
4
|
+
module Oversetter
|
5
|
+
class Yandex
|
6
|
+
# Fetches translations from Yandex.
|
7
|
+
class Translate
|
8
|
+
# @param search [String] The word or phrase to search for.
|
9
|
+
# @param params [Hash] The search parameters to use.
|
10
|
+
def get_trans(search, params)
|
11
|
+
func, result = 'translate', nil
|
12
|
+
tran = Oversetter::Yandex.new
|
13
|
+
result = tran.get_word(search, func, params, result)
|
14
|
+
result = MultiJson.load(result)
|
15
|
+
if result != nil
|
16
|
+
st = { 'searchterm' => URI.decode(search) }
|
17
|
+
type = { 'type' => 'translation' }
|
18
|
+
Oversetter.tofile(st)
|
19
|
+
Oversetter.tofile(type)
|
20
|
+
label = 'Translation'
|
21
|
+
if result['code'] == 200
|
22
|
+
detected = result['detected']
|
23
|
+
lang = result['lang']
|
24
|
+
text = result['text']
|
25
|
+
Oversetter.label(label)
|
26
|
+
if detected != nil
|
27
|
+
detected = detected['lang']
|
28
|
+
print Rainbow("Detected: #{detected}|").bright
|
29
|
+
end
|
30
|
+
dir = { 'direction' => lang }
|
31
|
+
out = { 'translation' => text }
|
32
|
+
Oversetter.tofile(dir)
|
33
|
+
Oversetter.tofile(out)
|
34
|
+
print Rainbow("Language direction: #{lang}|").bright
|
35
|
+
puts "Result: #{text[0]}"
|
36
|
+
end
|
37
|
+
else
|
38
|
+
puts 'Yandex returned an empty string.'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,294 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oversetter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Drew Prentice
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gli
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.13'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: htmlentities
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httpi
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.4'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: metainspector
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.6'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '4.6'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: multi_json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.11'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.11'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: multi_xml
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.5'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: nokogiri
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.6'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.6'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rainbow
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubyntlm
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.5'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.5'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: xml-fu
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0.2'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0.2'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: aruba
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.6'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.6'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: bundler
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.10'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '1.10'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: coveralls
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0.8'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0.8'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rake
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '10.4'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '10.4'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: spinach
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0.8'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0.8'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: yard
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0.8'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0.8'
|
237
|
+
description: Use translation services from the command line.
|
238
|
+
email: weirdpercent@gmail.com
|
239
|
+
executables:
|
240
|
+
- oversetter
|
241
|
+
extensions: []
|
242
|
+
extra_rdoc_files: []
|
243
|
+
files:
|
244
|
+
- CHANGELOG.md
|
245
|
+
- bin/oversetter
|
246
|
+
- lib/oversetter.rb
|
247
|
+
- lib/oversetter/cli/glosbe.rb
|
248
|
+
- lib/oversetter/cli/hablaa.rb
|
249
|
+
- lib/oversetter/cli/yandex.rb
|
250
|
+
- lib/oversetter/glosbe.rb
|
251
|
+
- lib/oversetter/glosbe/example.rb
|
252
|
+
- lib/oversetter/glosbe/text.rb
|
253
|
+
- lib/oversetter/glosbe/translate.rb
|
254
|
+
- lib/oversetter/hablaa.rb
|
255
|
+
- lib/oversetter/hablaa/example.rb
|
256
|
+
- lib/oversetter/hablaa/getlangs.rb
|
257
|
+
- lib/oversetter/hablaa/similar.rb
|
258
|
+
- lib/oversetter/hablaa/text.rb
|
259
|
+
- lib/oversetter/hablaa/translate.rb
|
260
|
+
- lib/oversetter/version.rb
|
261
|
+
- lib/oversetter/yandex.rb
|
262
|
+
- lib/oversetter/yandex/detect.rb
|
263
|
+
- lib/oversetter/yandex/getlangs.rb
|
264
|
+
- lib/oversetter/yandex/text.rb
|
265
|
+
- lib/oversetter/yandex/translate.rb
|
266
|
+
homepage: http://github.com/weirdpercent/oversetter
|
267
|
+
licenses:
|
268
|
+
- MIT
|
269
|
+
metadata: {}
|
270
|
+
post_install_message: |-
|
271
|
+
Thanks for using oversetter!
|
272
|
+
Please get necessary API keys as shown in:
|
273
|
+
http://github.com/weirdpercent/oversetter
|
274
|
+
rdoc_options: []
|
275
|
+
require_paths:
|
276
|
+
- lib
|
277
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
278
|
+
requirements:
|
279
|
+
- - ">="
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: '0'
|
282
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
|
+
requirements:
|
284
|
+
- - ">="
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '0'
|
287
|
+
requirements: []
|
288
|
+
rubyforge_project:
|
289
|
+
rubygems_version: 2.4.2
|
290
|
+
signing_key:
|
291
|
+
specification_version: 4
|
292
|
+
summary: A powerful text translation tool.
|
293
|
+
test_files: []
|
294
|
+
has_rdoc:
|