easy_translate 0.5.0 → 0.5.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 +5 -5
- data/lib/easy_translate/detection.rb +4 -4
- data/lib/easy_translate/languages.rb +85 -2
- data/lib/easy_translate/request.rb +11 -9
- data/lib/easy_translate/translation.rb +4 -2
- data/lib/easy_translate/translation_target.rb +5 -1
- data/lib/easy_translate/version.rb +1 -1
- metadata +10 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 8ce6cc748c26435deec480aebdf4dfcdadcaf75b967907b64109095dfd4434ce
|
|
4
|
+
data.tar.gz: eec6a4e68be5f53f931906a05de472a8f0438c3815bd9bbc6e7e48cff525d5b0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 39a1f3bc2af6f22fb96f0f02fa1176d4bff2330ea6ea789d63b592d08224cde1ed88611e4f8b6fc925a57441a8cccbe7ca386c099ec201a5661df04fce2c6b9d
|
|
7
|
+
data.tar.gz: 8aa2e23c5d7167e88b38512e580283a13a135240321599ee8a4c90267746d55a695ae12d07b6d09a7a8737a2022ab9dc477ae24a50c1905bbe779be320d08759
|
|
@@ -21,8 +21,8 @@ module EasyTranslate
|
|
|
21
21
|
request = DetectionRequest.new(texts, options, http_options)
|
|
22
22
|
raw = request.perform_raw
|
|
23
23
|
detections = JSON.parse(raw)['data']['detections'].map do |res|
|
|
24
|
-
res.empty? ? nil :
|
|
25
|
-
options[:confidence] ?
|
|
24
|
+
res.empty? ? nil :
|
|
25
|
+
options[:confidence] ?
|
|
26
26
|
{ :language => res.first['language'], :confidence => res.first['confidence'] } : res.first['language']
|
|
27
27
|
end
|
|
28
28
|
end
|
|
@@ -56,9 +56,9 @@ module EasyTranslate
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
# The body for the request
|
|
59
|
-
# @return [String] the body for the request
|
|
59
|
+
# @return [String] the body for the request
|
|
60
60
|
def body
|
|
61
|
-
|
|
61
|
+
JSON.generate({ q: @texts })
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
# Whether or not this was a request for multiple texts
|
|
@@ -3,57 +3,140 @@ module EasyTranslate
|
|
|
3
3
|
LANGUAGES = {
|
|
4
4
|
'af' => 'afrikaans',
|
|
5
5
|
'sq' => 'albanian',
|
|
6
|
+
'am' => 'amharic',
|
|
6
7
|
'ar' => 'arabic',
|
|
8
|
+
'hy' => 'armenian',
|
|
9
|
+
'as' => 'assamese',
|
|
10
|
+
'ay' => 'aymara',
|
|
11
|
+
'az' => 'azerbaijani',
|
|
12
|
+
'bm' => 'bambara',
|
|
13
|
+
'eu' => 'basque',
|
|
7
14
|
'be' => 'belarusian',
|
|
15
|
+
'bn' => 'bengali',
|
|
16
|
+
'bho' => 'bhojpuri',
|
|
17
|
+
'bs' => 'bosnian',
|
|
8
18
|
'bg' => 'bulgarian',
|
|
9
19
|
'ca' => 'catalan',
|
|
20
|
+
'ceb' => 'cebuano',
|
|
21
|
+
'ny' => 'chichewa',
|
|
22
|
+
'zh' => 'chinese_simplified',
|
|
10
23
|
'zh-CN' => 'chinese_simplified',
|
|
11
24
|
'zh-TW' => 'chinese_traditional',
|
|
25
|
+
'co' => 'corsican',
|
|
12
26
|
'hr' => 'croatian',
|
|
13
27
|
'cs' => 'czech',
|
|
14
28
|
'da' => 'danish',
|
|
29
|
+
'dv' => 'divehi',
|
|
30
|
+
'doi' => 'dogri',
|
|
15
31
|
'nl' => 'dutch',
|
|
16
32
|
'en' => 'english',
|
|
33
|
+
'eo' => 'esperanto',
|
|
17
34
|
'et' => 'estonian',
|
|
35
|
+
'ee' => 'ewe',
|
|
18
36
|
'tl' => 'filipino',
|
|
19
37
|
'fi' => 'finnish',
|
|
20
38
|
'fr' => 'french',
|
|
39
|
+
'fy' => 'frisian',
|
|
21
40
|
'gl' => 'galician',
|
|
41
|
+
'lg' => 'ganda',
|
|
42
|
+
'ka' => 'georgian',
|
|
22
43
|
'de' => 'german',
|
|
23
44
|
'el' => 'greek',
|
|
45
|
+
'gn' => 'guarani',
|
|
46
|
+
'gu' => 'gujarati',
|
|
47
|
+
'ht' => 'haitian_creole',
|
|
48
|
+
'ha' => 'hausa',
|
|
49
|
+
'haw' => 'hawaiian',
|
|
50
|
+
'he' => 'hebrew',
|
|
24
51
|
'iw' => 'hebrew',
|
|
25
52
|
'hi' => 'hindi',
|
|
53
|
+
'hmn' => 'hmong',
|
|
26
54
|
'hu' => 'hungarian',
|
|
27
55
|
'is' => 'icelandic',
|
|
56
|
+
'ig' => 'igbo',
|
|
57
|
+
'ilo' => 'iloko',
|
|
28
58
|
'id' => 'indonesian',
|
|
29
|
-
'ga' => '
|
|
59
|
+
'ga' => 'irish_gaelic',
|
|
30
60
|
'it' => 'italian',
|
|
31
61
|
'ja' => 'japanese',
|
|
62
|
+
'jv' => 'javanese',
|
|
63
|
+
'jw' => 'javanese',
|
|
64
|
+
'kn' => 'kannada',
|
|
65
|
+
'kk' => 'kazakh',
|
|
66
|
+
'km' => 'khmer',
|
|
67
|
+
'rw' => 'kinyarwanda',
|
|
68
|
+
'gom' => 'konkani',
|
|
32
69
|
'ko' => 'korean',
|
|
70
|
+
'kri' => 'krio',
|
|
71
|
+
'ku' => 'kurdish_kurmanji',
|
|
72
|
+
'ckb' => 'kurdish_sorani',
|
|
73
|
+
'ky' => 'kyrgyz',
|
|
74
|
+
'lo' => 'lao',
|
|
33
75
|
'la' => 'latin',
|
|
34
76
|
'lv' => 'latvian',
|
|
77
|
+
'ln' => 'lingala',
|
|
35
78
|
'lt' => 'lithuanian',
|
|
79
|
+
'lb' => 'luxembourgish',
|
|
36
80
|
'mk' => 'macedonian',
|
|
81
|
+
'mai' => 'maithili',
|
|
82
|
+
'mg' => 'malagasy',
|
|
37
83
|
'ms' => 'malay',
|
|
84
|
+
'ml' => 'malayalam',
|
|
38
85
|
'mt' => 'maltese',
|
|
86
|
+
'mi' => 'maori',
|
|
87
|
+
'mr' => 'marathi',
|
|
88
|
+
'mni-Mtei' => 'meiteilon_manipuri',
|
|
89
|
+
'lus' => 'mizo',
|
|
90
|
+
'mn' => 'mongolian',
|
|
91
|
+
'my' => 'myanmar_burmese',
|
|
92
|
+
'ne' => 'nepali',
|
|
93
|
+
'nso' => 'northern_sotho',
|
|
39
94
|
'no' => 'norwegian',
|
|
95
|
+
'or' => 'odia_oriya',
|
|
96
|
+
'om' => 'oromo',
|
|
97
|
+
'ps' => 'pashto',
|
|
40
98
|
'fa' => 'persian',
|
|
41
99
|
'pl' => 'polish',
|
|
42
100
|
'pt' => 'portuguese',
|
|
101
|
+
'pa' => 'punjabi',
|
|
102
|
+
'qu' => 'quechua',
|
|
43
103
|
'ro' => 'romanian',
|
|
44
104
|
'ru' => 'russian',
|
|
105
|
+
'sm' => 'samoan',
|
|
106
|
+
'sa' => 'sanskrit',
|
|
107
|
+
'gd' => 'scots_gaelic',
|
|
45
108
|
'sr' => 'serbian',
|
|
109
|
+
'st' => 'sesotho',
|
|
110
|
+
'sn' => 'shona',
|
|
111
|
+
'sd' => 'sindhi',
|
|
112
|
+
'si' => 'sinhala',
|
|
46
113
|
'sk' => 'slovak',
|
|
47
114
|
'sl' => 'slovenian',
|
|
115
|
+
'so' => 'somali',
|
|
48
116
|
'es' => 'spanish',
|
|
117
|
+
'su' => 'sundanese',
|
|
49
118
|
'sw' => 'swahili',
|
|
50
119
|
'sv' => 'swedish',
|
|
120
|
+
'tg' => 'tajik',
|
|
121
|
+
'ta' => 'tamil',
|
|
122
|
+
'tt' => 'tatar',
|
|
123
|
+
'te' => 'telugu',
|
|
51
124
|
'th' => 'thai',
|
|
125
|
+
'ti' => 'tigrinya',
|
|
126
|
+
'ts' => 'tsonga',
|
|
52
127
|
'tr' => 'turkish',
|
|
128
|
+
'tk' => 'turkmen',
|
|
129
|
+
'ak' => 'twi',
|
|
53
130
|
'uk' => 'ukrainian',
|
|
131
|
+
'ur' => 'urdu',
|
|
132
|
+
'ug' => 'uyghur',
|
|
133
|
+
'uz' => 'uzbek',
|
|
54
134
|
'vi' => 'vietnamese',
|
|
55
135
|
'cy' => 'welsh',
|
|
56
|
-
'
|
|
136
|
+
'xh' => 'xhosa',
|
|
137
|
+
'yi' => 'yiddish',
|
|
138
|
+
'yo' => 'yoruba',
|
|
139
|
+
'zu' => 'zulu'
|
|
57
140
|
}
|
|
58
141
|
|
|
59
142
|
end
|
|
@@ -36,23 +36,25 @@ module EasyTranslate
|
|
|
36
36
|
# Perform the given request
|
|
37
37
|
# @return [String] The response String
|
|
38
38
|
def perform_raw
|
|
39
|
-
|
|
40
|
-
request = Net::HTTP::Post.new(uri.request_uri)
|
|
41
|
-
request.add_field('X-HTTP-Method-Override', 'GET')
|
|
39
|
+
request = Net::HTTP::Post.new(uri.request_uri, { 'Content-Type' => 'application/json' })
|
|
42
40
|
request.body = body
|
|
43
|
-
# Fire and return
|
|
44
41
|
response = http.request(request)
|
|
45
|
-
unless response.code == '200'
|
|
46
|
-
err = JSON.parse(response.body)['error']['errors'].first['message']
|
|
47
|
-
raise EasyTranslateException.new(err)
|
|
48
|
-
end
|
|
42
|
+
raise_exception(response) unless response.code == '200'
|
|
49
43
|
response.body
|
|
50
44
|
end
|
|
51
45
|
|
|
52
46
|
private
|
|
53
47
|
|
|
48
|
+
def raise_exception(response)
|
|
49
|
+
err = JSON.parse(response.body)['error']['errors'].first['message']
|
|
50
|
+
rescue JSON::ParserError => _e
|
|
51
|
+
err = "#{response.code} - #{response.message}"
|
|
52
|
+
ensure
|
|
53
|
+
raise EasyTranslateException.new(err)
|
|
54
|
+
end
|
|
55
|
+
|
|
54
56
|
def uri
|
|
55
|
-
@uri ||= URI.parse("https://
|
|
57
|
+
@uri ||= URI.parse("https://translation.googleapis.com#{path}?#{param_s}")
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
def http
|
|
@@ -50,6 +50,7 @@ module EasyTranslate
|
|
|
50
50
|
self.html = options.delete(:html)
|
|
51
51
|
@source = options.delete(:from)
|
|
52
52
|
@target = options.delete(:to)
|
|
53
|
+
@model = options.delete(:model)
|
|
53
54
|
raise ArgumentError.new('No target language provided') unless @target
|
|
54
55
|
raise ArgumentError.new('Support for multiple targets dropped in V2') if @target.is_a?(Array)
|
|
55
56
|
@http_options = http_options
|
|
@@ -67,6 +68,7 @@ module EasyTranslate
|
|
|
67
68
|
params = super || {}
|
|
68
69
|
params[:source] = lang(@source) unless @source.nil?
|
|
69
70
|
params[:target] = lang(@target) unless @target.nil?
|
|
71
|
+
params[:model] = @model unless @model.nil?
|
|
70
72
|
params[:format] = @format unless @format.nil?
|
|
71
73
|
params.merge! @options if @options
|
|
72
74
|
params
|
|
@@ -79,9 +81,9 @@ module EasyTranslate
|
|
|
79
81
|
end
|
|
80
82
|
|
|
81
83
|
# The body for the request
|
|
82
|
-
# @return [String] the body for the request
|
|
84
|
+
# @return [String] the body for the request
|
|
83
85
|
def body
|
|
84
|
-
|
|
86
|
+
JSON.generate({ q: @texts })
|
|
85
87
|
end
|
|
86
88
|
|
|
87
89
|
# Whether or not this was a request for multiple texts
|
|
@@ -12,9 +12,13 @@ module EasyTranslate
|
|
|
12
12
|
def translations_available(target = nil, options = {})
|
|
13
13
|
request = TranslationTargetRequest.new(target, options)
|
|
14
14
|
raw = request.perform_raw
|
|
15
|
-
JSON.parse(raw)['data']['languages'].map do |res|
|
|
15
|
+
languages = JSON.parse(raw)['data']['languages'].map do |res|
|
|
16
16
|
res['language']
|
|
17
17
|
end
|
|
18
|
+
|
|
19
|
+
languages.push('zh-CN') if !languages.index('zh').nil?
|
|
20
|
+
|
|
21
|
+
languages
|
|
18
22
|
end
|
|
19
23
|
|
|
20
24
|
class TranslationTargetRequest < EasyTranslate::Request
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: easy_translate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- John Crepezzi
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-07-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -25,13 +25,13 @@ dependencies:
|
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: '0'
|
|
34
|
-
type: :
|
|
34
|
+
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
@@ -84,9 +84,10 @@ files:
|
|
|
84
84
|
- lib/easy_translate/version.rb
|
|
85
85
|
- spec/spec_helper.rb
|
|
86
86
|
homepage: https://github.com/seejohnrun/easy_translate
|
|
87
|
-
licenses:
|
|
87
|
+
licenses:
|
|
88
|
+
- MIT
|
|
88
89
|
metadata: {}
|
|
89
|
-
post_install_message:
|
|
90
|
+
post_install_message:
|
|
90
91
|
rdoc_options: []
|
|
91
92
|
require_paths:
|
|
92
93
|
- lib
|
|
@@ -101,9 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
101
102
|
- !ruby/object:Gem::Version
|
|
102
103
|
version: '0'
|
|
103
104
|
requirements: []
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
signing_key:
|
|
105
|
+
rubygems_version: 3.1.6
|
|
106
|
+
signing_key:
|
|
107
107
|
specification_version: 4
|
|
108
108
|
summary: Google Translate API Wrapper for Ruby
|
|
109
109
|
test_files:
|