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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a65f5b6c50442857f3f8de4d618cd0d3311a78af
4
- data.tar.gz: a74abf1852057b9dbb787d2e2a8df4c53da5e0f6
2
+ SHA256:
3
+ metadata.gz: 8ce6cc748c26435deec480aebdf4dfcdadcaf75b967907b64109095dfd4434ce
4
+ data.tar.gz: eec6a4e68be5f53f931906a05de472a8f0438c3815bd9bbc6e7e48cff525d5b0
5
5
  SHA512:
6
- metadata.gz: 064111bf0a3becf0ef54ed54e49452c6d1ce14929b0c5f51a929bef71d68d4983b5b83cb7d1232599f5e3c799031f4b1d13159766219d5196454bd113fc05267
7
- data.tar.gz: 95b03df27f5e80405e17000f30a68c9370ac0204840d18690a594f75266dc874c0eea21837faa5041c48395ec9fb471faec69df5af7ec236ad2feedfe80a10e6
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, URL escaped
59
+ # @return [String] the body for the request
60
60
  def body
61
- @texts.map { |t| "q=#{CGI::escape(t)}" }.join '&'
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' => 'irish',
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
- 'yi' => 'yiddish'
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
- # Construct the request
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://www.googleapis.com#{path}?#{param_s}")
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, URL escaped
84
+ # @return [String] the body for the request
83
85
  def body
84
- @texts.map { |t| "q=#{CGI::escape(t)}" }.join '&'
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
@@ -1,5 +1,5 @@
1
1
  module EasyTranslate
2
2
 
3
- VERSION = '0.5.0'
3
+ VERSION = '0.5.2'
4
4
 
5
5
  end
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.0
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: 2014-03-31 00:00:00.000000000 Z
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: json
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: :runtime
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
- rubyforge_project:
105
- rubygems_version: 2.2.0
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: