free_google_translate 0.1
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/lib/google_translate.rb +68 -0
- data/lib/google_translate_error.rb +2 -0
- data/lib/languages.rb +113 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9086ca66ba31763fd8e2dbf1897b059dccf19c3f
|
4
|
+
data.tar.gz: 801f799f1a5fd5cc981aa20761ac3dff9a19c95d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 888b5bb864206a3c80835f95fb342ebafca35f74beb5ab9cec4670d9156a83dec4bd33d7b2524d5026bd819ca1fb63ca9ba5a0f0060e7707236ec6fa3e1efbec
|
7
|
+
data.tar.gz: ee23402eb073636fe428184e4717a14c15df8e4a13cfc74eba837ffc82fcef0e7104c73605d3dc76ec353fa3179e94477a0f7069742ebe9851e09306ff1c8a4c
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require "net/http"
|
2
|
+
require "google_translate_error"
|
3
|
+
require "json"
|
4
|
+
require "languages"
|
5
|
+
|
6
|
+
class GoogleTranslate
|
7
|
+
include Languages
|
8
|
+
|
9
|
+
attr_reader :from, :to, :text, :uri, :translated
|
10
|
+
|
11
|
+
GOOGLE_TRANSLATE_URI = "https://translate.googleapis.com/translate_a/single".freeze
|
12
|
+
|
13
|
+
def initialize params
|
14
|
+
@from = get_source_language params
|
15
|
+
@to = get_target_language params
|
16
|
+
@text = get_text params
|
17
|
+
@uri = URI GOOGLE_TRANSLATE_URI
|
18
|
+
end
|
19
|
+
|
20
|
+
def translate
|
21
|
+
if @translated
|
22
|
+
return @translated
|
23
|
+
else
|
24
|
+
res = make_request build_query(dt: "t")
|
25
|
+
@translated = JSON.parse(res.body).flatten[0]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
def get_source_language params
|
31
|
+
params[:from] || "auto"
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_target_language params
|
35
|
+
stripped_target_language = params[:to].to_s.strip
|
36
|
+
if full_language_name stripped_target_language
|
37
|
+
stripped_target_language
|
38
|
+
else
|
39
|
+
raise GoogleTranslateError, "Target language is invalid"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_text params
|
44
|
+
stripped_text = params[:text].to_s.strip
|
45
|
+
if stripped_text.empty?
|
46
|
+
raise GoogleTranslateError, "Text can not empty"
|
47
|
+
else
|
48
|
+
stripped_text
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def build_query dt: "t"
|
53
|
+
{
|
54
|
+
client: "gtx",
|
55
|
+
sl: @from,
|
56
|
+
tl: @to,
|
57
|
+
dt: dt,
|
58
|
+
q: @text,
|
59
|
+
le: "UTF-8",
|
60
|
+
oe: "UTF-8"
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
def make_request query
|
65
|
+
uri.query = URI.encode_www_form query
|
66
|
+
res = Net::HTTP.get_response uri
|
67
|
+
end
|
68
|
+
end
|
data/lib/languages.rb
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
module Languages
|
2
|
+
LANGS = {
|
3
|
+
"auto" => "Automatic",
|
4
|
+
"af" => "Afrikaans",
|
5
|
+
"sq" => "Albanian",
|
6
|
+
"am" => "Amharic",
|
7
|
+
"ar" => "Arabic",
|
8
|
+
"hy" => "Armenian",
|
9
|
+
"az" => "Azerbaijani",
|
10
|
+
"eu" => "Basque",
|
11
|
+
"be" => "Belarusian",
|
12
|
+
"bn" => "Bengali",
|
13
|
+
"bs" => "Bosnian",
|
14
|
+
"bg" => "Bulgarian",
|
15
|
+
"ca" => "Catalan",
|
16
|
+
"ceb" => "Cebuano",
|
17
|
+
"ny" => "Chichewa",
|
18
|
+
"zh-cn" => "Chinese Simplified",
|
19
|
+
"zh-tw" => "Chinese Traditional",
|
20
|
+
"co" => "Corsican",
|
21
|
+
"hr" => "Croatian",
|
22
|
+
"cs" => "Czech",
|
23
|
+
"da" => "Danish",
|
24
|
+
"nl" => "Dutch",
|
25
|
+
"en" => "English",
|
26
|
+
"eo" => "Esperanto",
|
27
|
+
"et" => "Estonian",
|
28
|
+
"tl" => "Filipino",
|
29
|
+
"fi" => "Finnish",
|
30
|
+
"fr" => "French",
|
31
|
+
"fy" => "Frisian",
|
32
|
+
"gl" => "Galician",
|
33
|
+
"ka" => "Georgian",
|
34
|
+
"de" => "German",
|
35
|
+
"el" => "Greek",
|
36
|
+
"gu" => "Gujarati",
|
37
|
+
"ht" => "Haitian Creole",
|
38
|
+
"ha" => "Hausa",
|
39
|
+
"haw" => "Hawaiian",
|
40
|
+
"iw" => "Hebrew",
|
41
|
+
"hi" => "Hindi",
|
42
|
+
"hmn" => "Hmong",
|
43
|
+
"hu" => "Hungarian",
|
44
|
+
"is" => "Icelandic",
|
45
|
+
"ig" => "Igbo",
|
46
|
+
"id" => "Indonesian",
|
47
|
+
"ga" => "Irish",
|
48
|
+
"it" => "Italian",
|
49
|
+
"ja" => "Japanese",
|
50
|
+
"jw" => "Javanese",
|
51
|
+
"kn" => "Kannada",
|
52
|
+
"kk" => "Kazakh",
|
53
|
+
"km" => "Khmer",
|
54
|
+
"ko" => "Korean",
|
55
|
+
"ku" => "Kurdish (Kurmanji)",
|
56
|
+
"ky" => "Kyrgyz",
|
57
|
+
"lo" => "Lao",
|
58
|
+
"la" => "Latin",
|
59
|
+
"lv" => "Latvian",
|
60
|
+
"lt" => "Lithuanian",
|
61
|
+
"lb" => "Luxembourgish",
|
62
|
+
"mk" => "Macedonian",
|
63
|
+
"mg" => "Malagasy",
|
64
|
+
"ms" => "Malay",
|
65
|
+
"ml" => "Malayalam",
|
66
|
+
"mt" => "Maltese",
|
67
|
+
"mi" => "Maori",
|
68
|
+
"mr" => "Marathi",
|
69
|
+
"mn" => "Mongolian",
|
70
|
+
"my" => "Myanmar (Burmese)",
|
71
|
+
"ne" => "Nepali",
|
72
|
+
"no" => "Norwegian",
|
73
|
+
"ps" => "Pashto",
|
74
|
+
"fa" => "Persian",
|
75
|
+
"pl" => "Polish",
|
76
|
+
"pt" => "Portuguese",
|
77
|
+
"ma" => "Punjabi",
|
78
|
+
"ro" => "Romanian",
|
79
|
+
"ru" => "Russian",
|
80
|
+
"sm" => "Samoan",
|
81
|
+
"gd" => "Scots Gaelic",
|
82
|
+
"sr" => "Serbian",
|
83
|
+
"st" => "Sesotho",
|
84
|
+
"sn" => "Shona",
|
85
|
+
"sd" => "Sindhi",
|
86
|
+
"si" => "Sinhala",
|
87
|
+
"sk" => "Slovak",
|
88
|
+
"sl" => "Slovenian",
|
89
|
+
"so" => "Somali",
|
90
|
+
"es" => "Spanish",
|
91
|
+
"su" => "Sundanese",
|
92
|
+
"sw" => "Swahili",
|
93
|
+
"sv" => "Swedish",
|
94
|
+
"tg" => "Tajik",
|
95
|
+
"ta" => "Tamil",
|
96
|
+
"te" => "Telugu",
|
97
|
+
"th" => "Thai",
|
98
|
+
"tr" => "Turkish",
|
99
|
+
"uk" => "Ukrainian",
|
100
|
+
"ur" => "Urdu",
|
101
|
+
"uz" => "Uzbek",
|
102
|
+
"vi" => "Vietnamese",
|
103
|
+
"cy" => "Welsh",
|
104
|
+
"xh" => "Xhosa",
|
105
|
+
"yi" => "Yiddish",
|
106
|
+
"yo" => "Yoruba",
|
107
|
+
"zu" => "Zulu"
|
108
|
+
}
|
109
|
+
|
110
|
+
def full_language_name short_language_name
|
111
|
+
LANGS[short_language_name]
|
112
|
+
end
|
113
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: free_google_translate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hieu Nguyen
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-07-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Free Google translate without authentication
|
14
|
+
email: nhieu92@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/google_translate.rb
|
20
|
+
- lib/google_translate_error.rb
|
21
|
+
- lib/languages.rb
|
22
|
+
homepage:
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.6.12
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Free Google translate
|
46
|
+
test_files: []
|