sishen-rtranslate 1.3 → 1.4
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.
- data/.gitignore +4 -0
- data/README.txt +1 -1
- data/Rakefile +16 -9
- data/VERSION +1 -0
- data/lib/rtranslate/detection.rb +7 -7
- data/lib/rtranslate/rtranslate.rb +7 -6
- data/lib/rtranslate.rb +9 -6
- metadata +45 -24
- data/rtranslate.gemspec +0 -43
data/.gitignore
ADDED
data/README.txt
CHANGED
data/Rakefile
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
|
-
require 'hoe'
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
begin
|
|
4
|
+
require 'jeweler'
|
|
5
|
+
Jeweler::Tasks.new do |p|
|
|
6
|
+
p.name = 'sishen-rtranslate'
|
|
7
|
+
p.version = '1.4'
|
|
8
|
+
p.date = "2010-08-31"
|
|
9
|
+
p.authors = ['Ye Dingding']
|
|
10
|
+
p.email = 'yedingding@gmail.com'
|
|
11
|
+
p.homepage = 'http://github.com/sishen/rtranslate'
|
|
12
|
+
p.summary = 'Google translate ruby client api'
|
|
13
|
+
p.description = 'A simple, unofficial, ruby client API for using Google Translate.'
|
|
14
|
+
p.add_dependency 'json', '>= 1.1.3'
|
|
15
|
+
p.add_dependency 'activesupport', '>= 2.2.0'
|
|
16
|
+
end
|
|
17
|
+
rescue LoadError
|
|
18
|
+
puts "Jeweler not available. Install it with: gem install jeweler"
|
|
12
19
|
end
|
data/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.4
|
data/lib/rtranslate/detection.rb
CHANGED
|
@@ -45,18 +45,18 @@ module Translate
|
|
|
45
45
|
@key = key
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
def detect(text,
|
|
49
|
-
url = "#{GOOGLE_DETECTION_URL}?q=#{text}&v=#{@version}"
|
|
50
|
-
if @key
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
def detect(text, options = {:details => false})
|
|
49
|
+
url = "#{GOOGLE_DETECTION_URL}?q=#{CGI.escape(text)}&v=#{@version}"
|
|
50
|
+
url << "&key=#{@key}" if @key
|
|
51
|
+
url << "&userip=#{options[:userip]}" if options[:userip]
|
|
52
|
+
|
|
53
53
|
detection_response = do_detect(url)
|
|
54
|
-
details ? detection_response : detection_response.abbrev
|
|
54
|
+
options[:details] ? detection_response : detection_response.abbrev
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
private
|
|
58
58
|
def do_detect(url)
|
|
59
|
-
jsondoc =
|
|
59
|
+
jsondoc = Net::HTTP.get(URI.parse(url))
|
|
60
60
|
response = JSON.parse(jsondoc)
|
|
61
61
|
if response["responseStatus"] == 200
|
|
62
62
|
DetectionResponse.new(response["responseData"])
|
|
@@ -58,6 +58,7 @@ module Translate
|
|
|
58
58
|
# Configuration options:
|
|
59
59
|
# * <tt>:from</tt> - The source language
|
|
60
60
|
# * <tt>:to</tt> - The target language
|
|
61
|
+
# * <tt>:userip</tt> - The IP address of the end-user on whose behalf the request is being made
|
|
61
62
|
def translate(text, options = { })
|
|
62
63
|
from = options[:from] || @default_from
|
|
63
64
|
to = options[:to] || @default_to
|
|
@@ -66,11 +67,11 @@ module Translate
|
|
|
66
67
|
to = Google::Language.abbrev(to)
|
|
67
68
|
langpair = "#{from}|#{to}"
|
|
68
69
|
|
|
69
|
-
text.mb_chars.scan(/(.{1,
|
|
70
|
-
url = "#{GOOGLE_TRANSLATE_URL}?q=#{st}&langpair=#{langpair}&v=#{@version}"
|
|
71
|
-
if @key
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
text.mb_chars.scan(/(.{1,300})/).inject("") do |result, st|
|
|
71
|
+
url = "#{GOOGLE_TRANSLATE_URL}?q=#{CGI.escape(st.to_s)}&langpair=#{CGI.escape(langpair)}&v=#{@version}"
|
|
72
|
+
url << "&key=#{@key}" if @key
|
|
73
|
+
url << "&userip=#{options[:userip]}" if options[:userip]
|
|
74
|
+
|
|
74
75
|
result += do_translate(url)
|
|
75
76
|
end
|
|
76
77
|
else
|
|
@@ -116,7 +117,7 @@ module Translate
|
|
|
116
117
|
|
|
117
118
|
private
|
|
118
119
|
def do_translate(url) #:nodoc:
|
|
119
|
-
jsondoc =
|
|
120
|
+
jsondoc = Net::HTTP.get(URI.parse(url))
|
|
120
121
|
response = JSON.parse(jsondoc)
|
|
121
122
|
if response["responseStatus"] == 200
|
|
122
123
|
response["responseData"]["translatedText"]
|
data/lib/rtranslate.rb
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
1
3
|
require File.join(File.dirname(__FILE__), 'rtranslate/language')
|
|
2
4
|
require File.join(File.dirname(__FILE__), 'rtranslate/rtranslate')
|
|
3
5
|
require File.join(File.dirname(__FILE__), 'rtranslate/detection')
|
|
4
6
|
require 'uri'
|
|
5
|
-
require '
|
|
7
|
+
require 'cgi'
|
|
8
|
+
require 'net/http'
|
|
6
9
|
|
|
7
10
|
begin
|
|
8
11
|
require 'json'
|
|
@@ -11,21 +14,21 @@ rescue LoadError
|
|
|
11
14
|
require 'json'
|
|
12
15
|
end
|
|
13
16
|
|
|
17
|
+
$KCODE = 'u'
|
|
18
|
+
|
|
14
19
|
unless defined?(ActiveSupport)
|
|
15
|
-
require '
|
|
20
|
+
require 'active_support'
|
|
16
21
|
end
|
|
17
22
|
|
|
18
|
-
$KCODE = 'u'
|
|
19
|
-
|
|
20
23
|
include Translate
|
|
21
24
|
def Translate.t(text, from, to)
|
|
22
25
|
RTranslate.translate(text, from, to)
|
|
23
26
|
rescue
|
|
24
|
-
"Error: "
|
|
27
|
+
"Error: #{$!}"
|
|
25
28
|
end
|
|
26
29
|
|
|
27
30
|
def Translate.d(text)
|
|
28
31
|
Detection.detect(text)
|
|
29
32
|
rescue
|
|
30
|
-
"Error: "
|
|
33
|
+
"Error: #{$!}"
|
|
31
34
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sishen-rtranslate
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
hash: 7
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 1
|
|
8
|
+
- 4
|
|
9
|
+
version: "1.4"
|
|
5
10
|
platform: ruby
|
|
6
11
|
authors:
|
|
7
12
|
- Ye Dingding
|
|
@@ -9,29 +14,41 @@ autorequire:
|
|
|
9
14
|
bindir: bin
|
|
10
15
|
cert_chain: []
|
|
11
16
|
|
|
12
|
-
date:
|
|
13
|
-
default_executable:
|
|
17
|
+
date: 2010-08-31 00:00:00 +08:00
|
|
18
|
+
default_executable: rtranslate
|
|
14
19
|
dependencies:
|
|
15
20
|
- !ruby/object:Gem::Dependency
|
|
16
21
|
name: json
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
20
25
|
requirements:
|
|
21
26
|
- - ">="
|
|
22
27
|
- !ruby/object:Gem::Version
|
|
28
|
+
hash: 21
|
|
29
|
+
segments:
|
|
30
|
+
- 1
|
|
31
|
+
- 1
|
|
32
|
+
- 3
|
|
23
33
|
version: 1.1.3
|
|
24
|
-
|
|
34
|
+
type: :runtime
|
|
35
|
+
version_requirements: *id001
|
|
25
36
|
- !ruby/object:Gem::Dependency
|
|
26
|
-
name:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
name: activesupport
|
|
38
|
+
prerelease: false
|
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
40
|
+
none: false
|
|
30
41
|
requirements:
|
|
31
42
|
- - ">="
|
|
32
43
|
- !ruby/object:Gem::Version
|
|
33
|
-
|
|
34
|
-
|
|
44
|
+
hash: 7
|
|
45
|
+
segments:
|
|
46
|
+
- 2
|
|
47
|
+
- 2
|
|
48
|
+
- 0
|
|
49
|
+
version: 2.2.0
|
|
50
|
+
type: :runtime
|
|
51
|
+
version_requirements: *id002
|
|
35
52
|
description: A simple, unofficial, ruby client API for using Google Translate.
|
|
36
53
|
email: yedingding@gmail.com
|
|
37
54
|
executables:
|
|
@@ -39,49 +56,53 @@ executables:
|
|
|
39
56
|
extensions: []
|
|
40
57
|
|
|
41
58
|
extra_rdoc_files:
|
|
42
|
-
- History.txt
|
|
43
|
-
- Manifest.txt
|
|
44
59
|
- README.txt
|
|
45
60
|
files:
|
|
61
|
+
- .gitignore
|
|
46
62
|
- History.txt
|
|
47
63
|
- MIT-LICENSE
|
|
48
64
|
- Manifest.txt
|
|
49
65
|
- README.txt
|
|
50
66
|
- Rakefile
|
|
67
|
+
- VERSION
|
|
51
68
|
- bin/rtranslate
|
|
52
69
|
- lib/rtranslate.rb
|
|
70
|
+
- lib/rtranslate/detection.rb
|
|
53
71
|
- lib/rtranslate/language.rb
|
|
54
72
|
- lib/rtranslate/rtranslate.rb
|
|
55
|
-
- lib/rtranslate/detection.rb
|
|
56
|
-
- rtranslate.gemspec
|
|
57
|
-
- tests/ts_translate.rb
|
|
58
73
|
- tests/ts_detection.rb
|
|
74
|
+
- tests/ts_translate.rb
|
|
59
75
|
has_rdoc: true
|
|
60
76
|
homepage: http://github.com/sishen/rtranslate
|
|
61
77
|
licenses: []
|
|
62
78
|
|
|
63
79
|
post_install_message:
|
|
64
80
|
rdoc_options:
|
|
65
|
-
- --
|
|
66
|
-
- README.txt
|
|
81
|
+
- --charset=UTF-8
|
|
67
82
|
require_paths:
|
|
68
83
|
- lib
|
|
69
84
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
85
|
+
none: false
|
|
70
86
|
requirements:
|
|
71
87
|
- - ">="
|
|
72
88
|
- !ruby/object:Gem::Version
|
|
89
|
+
hash: 3
|
|
90
|
+
segments:
|
|
91
|
+
- 0
|
|
73
92
|
version: "0"
|
|
74
|
-
version:
|
|
75
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
|
+
none: false
|
|
76
95
|
requirements:
|
|
77
96
|
- - ">="
|
|
78
97
|
- !ruby/object:Gem::Version
|
|
98
|
+
hash: 3
|
|
99
|
+
segments:
|
|
100
|
+
- 0
|
|
79
101
|
version: "0"
|
|
80
|
-
version:
|
|
81
102
|
requirements: []
|
|
82
103
|
|
|
83
|
-
rubyforge_project:
|
|
84
|
-
rubygems_version: 1.3.
|
|
104
|
+
rubyforge_project:
|
|
105
|
+
rubygems_version: 1.3.7
|
|
85
106
|
signing_key:
|
|
86
107
|
specification_version: 3
|
|
87
108
|
summary: Google translate ruby client api
|
data/rtranslate.gemspec
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
Gem::Specification.new do |s|
|
|
2
|
-
s.name = %q{rtranslate}
|
|
3
|
-
s.version = "1.3"
|
|
4
|
-
|
|
5
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
6
|
-
s.authors = ["Ye Dingding"]
|
|
7
|
-
s.date = %q{2009-07-11}
|
|
8
|
-
s.description = %q{rtranslate is a simple, unofficial, ruby client API for using Google Translate.}
|
|
9
|
-
s.email = %q{yedingding@gmail.com}
|
|
10
|
-
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
|
|
11
|
-
s.files = ["History.txt", "MIT-LICENSE", "Manifest.txt", "README.txt", "Rakefile", "rtranslate.gemspec", "bin/rtranslate",
|
|
12
|
-
"lib/rtranslate.rb", "lib/rtranslate/language.rb", "lib/rtranslate/rtranslate.rb", "tests/ts_translate.rb",
|
|
13
|
-
"bin/rtranslate", "lib/rtranslate.rb", "lib/rtranslate/language.rb",
|
|
14
|
-
"lib/rtranslate/rtranslate.rb", "lib/rtranslate/detection.rb", "tests/ts_detection.rb"]
|
|
15
|
-
s.has_rdoc = true
|
|
16
|
-
s.homepage = %q{http://github.com/sishen}
|
|
17
|
-
s.rdoc_options = ["--main", "README.txt"]
|
|
18
|
-
s.require_paths = ["lib"]
|
|
19
|
-
s.rubygems_version = %q{1.2.0}
|
|
20
|
-
s.summary = %q{a simple, unofficial, ruby client API for using Google Translate}
|
|
21
|
-
|
|
22
|
-
if s.respond_to? :specification_version then
|
|
23
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
24
|
-
s.specification_version = 2
|
|
25
|
-
|
|
26
|
-
if current_version >= 3 then
|
|
27
|
-
s.add_development_dependency(%q<hoe>, [">= 1.7.0"])
|
|
28
|
-
s.add_development_dependency(%q<rspec>, [">= 1.1.4"])
|
|
29
|
-
s.add_development_dependency(%q<json>, [">= 1.1.3"])
|
|
30
|
-
s.add_development_dependency(%q<activesupprt>, [">= 2.2.0"])
|
|
31
|
-
else
|
|
32
|
-
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
|
33
|
-
s.add_dependency(%q<rspec>, [">= 1.1.4"])
|
|
34
|
-
s.add_dependency(%q<json>, [">= 1.1.3"])
|
|
35
|
-
s.add_dependency(%q<activesupport>, [">= 2.2.0"])
|
|
36
|
-
end
|
|
37
|
-
else
|
|
38
|
-
s.add_dependency(%q<hoe>, [">= 1.7.0"])
|
|
39
|
-
s.add_dependency(%q<rspec>, [">= 1.1.4"])
|
|
40
|
-
s.add_dependency(%q<json>, [">= 1.1.3"])
|
|
41
|
-
s.add_dependency(%q<activesupport>, [">= 2.2.0"])
|
|
42
|
-
end
|
|
43
|
-
end
|