shvets-google_translate 0.5.3
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/CHANGES +7 -0
- data/README +14 -0
- data/Rakefile +37 -0
- data/bin/translate +61 -0
- data/bin/translate.bat +6 -0
- data/google_translate.gemspec +32 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/translate_spec.rb +58 -0
- metadata +61 -0
data/CHANGES
ADDED
data/README
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
= Google-Translate -- Client for Google Translate API
|
2
|
+
|
3
|
+
= Installing Google-Translate
|
4
|
+
|
5
|
+
== Installing the Gem
|
6
|
+
$ sudo gem sources -a http://gems.github.com
|
7
|
+
$ sudo gem install google-translate
|
8
|
+
|
9
|
+
== Usage
|
10
|
+
|
11
|
+
translate list - displays the list of supported languages
|
12
|
+
translate detect "hello world" - detects language of text
|
13
|
+
translate en:ru "hello world" - translates from en to ru
|
14
|
+
translate ru "hello world" - translated from auto-detected language to ru
|
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Rakefile for Scriptlandia-R
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'rake/gempackagetask'
|
5
|
+
require 'rake/testtask'
|
6
|
+
require 'spec/rake/spectask'
|
7
|
+
require 'rake/rdoctask'
|
8
|
+
require 'rcov/rcovtask'
|
9
|
+
|
10
|
+
SPEC = Gem::Specification.load('google-translate.gemspec')
|
11
|
+
|
12
|
+
Rake::GemPackageTask.new(SPEC) do |pkg|
|
13
|
+
pkg.need_tar = true
|
14
|
+
pkg.need_zip = true
|
15
|
+
end
|
16
|
+
|
17
|
+
Spec::Rake::SpecTask.new do |task|
|
18
|
+
task.libs << 'lib'
|
19
|
+
task.pattern = 'spec/**/*_spec.rb'
|
20
|
+
task.verbose = false
|
21
|
+
end
|
22
|
+
|
23
|
+
Rake::RDocTask.new do |rdoc|
|
24
|
+
rdoc.rdoc_dir = 'rdoc'
|
25
|
+
rdoc.title = 'teststuff'
|
26
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
27
|
+
rdoc.rdoc_files.include('README*')
|
28
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
29
|
+
end
|
30
|
+
|
31
|
+
Rcov::RcovTask.new do |task|
|
32
|
+
task.libs << 'test'
|
33
|
+
task.test_files = FileList['test/**/*_test.rb']
|
34
|
+
task.verbose = true
|
35
|
+
end
|
36
|
+
|
37
|
+
task :default => :rcov
|
data/bin/translate
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift(File::join(File::dirname(File::dirname(__FILE__)), "lib"))
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'google_translate.rb'
|
7
|
+
|
8
|
+
class Translate
|
9
|
+
USAGE= <<-TEXT
|
10
|
+
Usage:
|
11
|
+
translate list - displays the list of supported languages
|
12
|
+
translate detect "hello world" - detects language of text
|
13
|
+
translate en:ru "hello world" - translates from en to ru
|
14
|
+
translate ru "hello world" - translated from auto-detected language to ru
|
15
|
+
TEXT
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@translator = Google::Translator.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def print_languages list, title
|
22
|
+
puts USAGE
|
23
|
+
puts list.join(', ')
|
24
|
+
end
|
25
|
+
|
26
|
+
def run
|
27
|
+
if(ARGV.size == 0)
|
28
|
+
puts USAGE and return
|
29
|
+
end
|
30
|
+
|
31
|
+
case ARGV.shift
|
32
|
+
|
33
|
+
when 'list':
|
34
|
+
hash = @translator.supported_languages
|
35
|
+
|
36
|
+
print_languages hash[:from_languages], "From Languages:"
|
37
|
+
print_languages hash[:to_languages], "To Languages:"
|
38
|
+
when 'detect':
|
39
|
+
language = @translator.detect_language(ARGV.shift)
|
40
|
+
|
41
|
+
puts "Language: #{language.inspect}"
|
42
|
+
when /(..):(..)/
|
43
|
+
from_text = ARGV.join(' ')
|
44
|
+
from = $1
|
45
|
+
to = $2
|
46
|
+
|
47
|
+
puts @translator.translate(from.to_sym, to.to_sym, from_text)
|
48
|
+
|
49
|
+
when /(..)/
|
50
|
+
from_text = ARGV.join(' ')
|
51
|
+
|
52
|
+
from = @translator.detect_language(from_text)['language']
|
53
|
+
to = $1
|
54
|
+
|
55
|
+
puts @translator.translate(from.to_sym, to.to_sym, from_text)
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
Translate.new.run
|
data/bin/translate.bat
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{google_translate}
|
5
|
+
s.version = "0.5.3"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
|
9
|
+
s.authors = ["Alexander Shvets"]
|
10
|
+
s.date = %q{2009-01-21}
|
11
|
+
s.description = %q{Simple client for Google Translate API.}
|
12
|
+
s.email = %q{alexander.shvets@gmail.com}
|
13
|
+
|
14
|
+
s.files = ["CHANGES", "google_translate.gemspec", "Rakefile", "README", "lib/google_translate.rb ",
|
15
|
+
"bin/translate", "bin/translate.bat", "spec/spec_helper.rb" , "spec/translate_spec.rb"]
|
16
|
+
|
17
|
+
s.has_rdoc = false
|
18
|
+
s.homepage = %q{http://github.com/shvets/google_translate}
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{google_translate}
|
21
|
+
s.rubygems_version = %q{1.3.1}
|
22
|
+
s.summary = %q{Simple client for Google Translate API.}
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
s.specification_version = 2
|
26
|
+
end
|
27
|
+
|
28
|
+
s.executables = ['translate']
|
29
|
+
s.platform = Gem::Platform::RUBY
|
30
|
+
s.requirements = ["none"]
|
31
|
+
s.bindir = "bin"
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# translate_spec.rb
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
4
|
+
|
5
|
+
require 'google_translate'
|
6
|
+
|
7
|
+
module Google
|
8
|
+
|
9
|
+
describe Translator do
|
10
|
+
before :each do
|
11
|
+
@translator = Translator.new
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should raise an error if one of parameters is missing" do
|
15
|
+
lambda {
|
16
|
+
@translator.translate(nil, :ru)
|
17
|
+
}.should raise_error
|
18
|
+
|
19
|
+
lambda {
|
20
|
+
@translator.translate(:en, nil)
|
21
|
+
}.should raise_error
|
22
|
+
|
23
|
+
lambda {
|
24
|
+
@translator.translate(:en, :ru, nil)
|
25
|
+
}.should raise_error
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should translate test string from one language to another" do
|
29
|
+
r = @translator.translate(:en, :ru, "hello world!")
|
30
|
+
|
31
|
+
puts r
|
32
|
+
|
33
|
+
r.size.should be > 0
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should detect the language of a string" do
|
37
|
+
@translator.detect_language("bonjour tout le monde")['language'].should be == "fr"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should raise an error if no string" do
|
41
|
+
lambda {
|
42
|
+
@translator.detect_language(nil)
|
43
|
+
}.should raise_error
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return unreliable flag if language is not recognized" do
|
47
|
+
@translator.detect_language("azafretmkldt")['isReliable'].should be false
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should return list of supportd languages" do
|
51
|
+
languages = @translator.supported_languages
|
52
|
+
|
53
|
+
languages[:from_languages].size.should > 0
|
54
|
+
languages[:to_languages].size.should > 0
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shvets-google_translate
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Alexander Shvets
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-01-21 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: Simple client for Google Translate API.
|
17
|
+
email: alexander.shvets@gmail.com
|
18
|
+
executables:
|
19
|
+
- translate
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files: []
|
23
|
+
|
24
|
+
files:
|
25
|
+
- CHANGES
|
26
|
+
- google_translate.gemspec
|
27
|
+
- Rakefile
|
28
|
+
- README
|
29
|
+
- "lib/google_translate.rb "
|
30
|
+
- bin/translate
|
31
|
+
- bin/translate.bat
|
32
|
+
- spec/spec_helper.rb
|
33
|
+
- spec/translate_spec.rb
|
34
|
+
has_rdoc: false
|
35
|
+
homepage: http://github.com/shvets/google_translate
|
36
|
+
post_install_message:
|
37
|
+
rdoc_options: []
|
38
|
+
|
39
|
+
require_paths:
|
40
|
+
- lib
|
41
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: "0"
|
46
|
+
version:
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: "0"
|
52
|
+
version:
|
53
|
+
requirements:
|
54
|
+
- none
|
55
|
+
rubyforge_project: google_translate
|
56
|
+
rubygems_version: 1.2.0
|
57
|
+
signing_key:
|
58
|
+
specification_version: 2
|
59
|
+
summary: Simple client for Google Translate API.
|
60
|
+
test_files: []
|
61
|
+
|