googletranslate 0.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.
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2007 Dingding Ye
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Manifest.txt ADDED
@@ -0,0 +1,9 @@
1
+ MIT-LICENSE
2
+ Manifest.txt
3
+ README
4
+ Rakefile
5
+ bin/rtranslate
6
+ lib/rtranslate.rb
7
+ lib/rtranslate/language.rb
8
+ lib/rtranslate/rtranslate.rb
9
+ tests/ts_translate.rb
data/README ADDED
@@ -0,0 +1,28 @@
1
+ = google-api-transalte-ruby
2
+ A simple, unofficial, ruby client API for using Google Translate.
3
+
4
+ == Install
5
+
6
+ sudo gem install rtranslate
7
+
8
+ == Usage
9
+ 1.
10
+ {{{
11
+ require "rtranslate"
12
+ result = Translate.t("xxx", Language::English, Language::CHINESE_SIMPLIFIED)
13
+ }}}
14
+
15
+ 2.
16
+ {{{
17
+ $rtranslate -f en -t zh-CN xxx
18
+ }}}
19
+
20
+ == CHANGES
21
+ v0.2 Nov 16, 2007
22
+ * add a command line tool.
23
+
24
+ v0.1 Nov 15, 2007
25
+ * initial release
26
+
27
+ Copyright (c) 2007 Dingding Ye <yedingding@gmail.com>
28
+ Distributed under MIT License
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'hoe'
3
+
4
+ Hoe.new('googletranslate', '0.2') do |p|
5
+ p.rubyforge_name = 'googletranslate'
6
+ p.author = 'Ye Dingding'
7
+ p.email = 'yedingding@gmail.com'
8
+ p.url = 'http://sishen.lifegoo.com'
9
+ p.summary = 'Google translate ruby client api'
10
+ p.description = 'A simple, unofficial, ruby client API for using Google Translate.'
11
+ p.extra_deps << ['hpricot', '>= 0.4']
12
+ end
data/bin/rtranslate ADDED
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift(File::join(File::dirname(File::dirname(__FILE__)), "lib"))
4
+
5
+ require 'rtranslate'
6
+ require 'optparse'
7
+
8
+ options = {}
9
+ opts = OptionParser.new do |opts|
10
+ opts.banner = <<-EOF
11
+ Usage:
12
+ rtranslate -f lang -t lang text
13
+ EOF
14
+
15
+ opts.on("-fLANG", "--from LANG", "From Language LANG") do |x|
16
+ options[:from] = x
17
+ end
18
+
19
+ opts.on("-tLANG", "--to LANG", "To Language LANG") do |x|
20
+ options[:to] = x
21
+ end
22
+
23
+ opts.on("-h", "--help", "Show this message") do
24
+ puts opts
25
+ exit
26
+ end
27
+ end
28
+
29
+ opts.parse!(ARGV)
30
+ text = ARGV.shift
31
+
32
+ if options[:from].nil? || options[:to].nil? || text.empty?
33
+ puts opts
34
+ exit
35
+ end
36
+
37
+ STDOUT.puts(Translate.t(text, options[:from], options[:to]))
data/lib/rtranslate.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'rtranslate/language'
2
+ require 'rtranslate/rtranslate'
3
+ require 'uri'
4
+ require 'open-uri'
5
+
6
+ begin
7
+ require 'hpricot'
8
+ rescue LoadError
9
+ require 'rubygems'
10
+ require 'hpricot'
11
+ end
12
+
13
+ include Translate
14
+ def Translate.t(text, from, to)
15
+ begin
16
+ RTranslate.translate(text, from, to)
17
+ rescue
18
+ "Error: " + $!
19
+ end
20
+ end
21
+
@@ -0,0 +1,26 @@
1
+ module Translate
2
+ module Language
3
+ ARABIC = 'ar'
4
+ CHINESE = 'zh'
5
+ CHINESE_SIMPLIFIED = 'zh-CN'
6
+ CHINESE_TRADITIONAL = 'zh-TW'
7
+ DUTCH = 'nl'
8
+ ENGLISH = 'en'
9
+ FRENCH = 'fr'
10
+ GERMAN = 'de'
11
+ GREEK = 'el'
12
+ ITALIAN = 'it'
13
+ JAPANESE = 'ja'
14
+ KOREAN = 'ko'
15
+ PORTUGUESE = 'pt'
16
+ RUSSIAN = 'ru'
17
+ SPANISH = 'es'
18
+
19
+
20
+ AVAILABLE_PAIR = ["ar|en", "zh|en", "zh-CN|zh-TW", "zh-TW|zh-CN", "nl|en", "en|ar", "en|zh-CN",
21
+ "en|zh-TW", "en|nl", "en|fr", "en|de", "en|el", "en|it", "en|ja", "en|ko",
22
+ "en|pt", "en|ru", "en|es", "fr|en", "fr|de", "de|en", "de|fr", "el|en",
23
+ "it|en", "ja|en", "ko|en", "pt|en", "ru|en", "es|en"
24
+ ]
25
+ end
26
+ end
@@ -0,0 +1,24 @@
1
+ module Translate
2
+ class UnsupportedLanguagePair < StandardError
3
+ end
4
+
5
+ class RTranslate
6
+ @@GT_URL = "http://www.google.com/translate_t?langpair="
7
+ @@PARAMS = {"User-Agent"=>"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9", "Connection"=>"Keep-Alive", "Keep-Alive"=>"30"}
8
+
9
+ class << self
10
+ def translate(text, from, to)
11
+ langpair = "#{from}|#{to}"
12
+ if Language::AVAILABLE_PAIR.include?(langpair)
13
+ url = @@GT_URL + langpair + "&text=" + text
14
+ doc = open(URI.escape(url), @@PARAMS) { |f| Hpricot(f)}
15
+ return doc.search("//div#result_box").inner_text
16
+ else
17
+ raise UnsupportedLanguagePair, "Translation from '#{from}' to '#{to}' isn't supported yet!"
18
+ end
19
+ end
20
+
21
+ alias_method :t, :translate
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,31 @@
1
+ $:.unshift File.expand_path(File.dirname(__FILE__) + "/../lib")
2
+
3
+ require 'test/unit'
4
+ require 'rtranslate'
5
+
6
+ class TranslateTest < Test::Unit::TestCase
7
+ include Language
8
+ def test_english_translate
9
+ assert_equal("مرحبا العالم", Translate.t("Hello world", ENGLISH, ARABIC));
10
+ assert_equal("你好世界", Translate.t("Hello world", ENGLISH, CHINESE_SIMPLIFIED));
11
+ assert_equal("Bonjour le monde", Translate.t("Hello world", ENGLISH, FRENCH));
12
+ assert_equal("Hallo welt", Translate.t("Hello world", ENGLISH, GERMAN));
13
+ assert_equal("Ciao a tutti", Translate.t("Hello world", ENGLISH, ITALIAN));
14
+ assert_equal("こんにちは世界", Translate.t("Hello world", ENGLISH, JAPANESE));
15
+ assert_equal("여러분, 안녕하세요", Translate.t("Hello world", ENGLISH, KOREAN));
16
+ assert_equal("Olá mundo", Translate.t("Hello world", ENGLISH, PORTUGUESE));
17
+ assert_equal("Привет мир", Translate.t("Hello world", ENGLISH, RUSSIAN));
18
+ assert_equal("Hola mundo", Translate.t("Hello world", ENGLISH, SPANISH));
19
+ end
20
+
21
+ def test_chinese_translate
22
+ assert_equal("Hello World", Translate.t("你好世界", CHINESE, ENGLISH))
23
+ assert_equal("Hello World", Translate.t("你好世界", 'zh', 'en'))
24
+ end
25
+
26
+ def test_unsupported_translate
27
+ assert_raise UnsupportedLanguagePair do
28
+ Translate_t("Hello World", Translate.t("你好世界", 'zh-CN', 'en'))
29
+ end
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.4
3
+ specification_version: 1
4
+ name: googletranslate
5
+ version: !ruby/object:Gem::Version
6
+ version: "0.2"
7
+ date: 2007-11-17 00:00:00 +08:00
8
+ summary: Google translate ruby client api
9
+ require_paths:
10
+ - lib
11
+ email: yedingding@gmail.com
12
+ homepage: http://sishen.lifegoo.com
13
+ rubyforge_project: googletranslate
14
+ description: A simple, unofficial, ruby client API for using Google Translate.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: true
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Ye Dingding
31
+ files:
32
+ - MIT-LICENSE
33
+ - Manifest.txt
34
+ - README
35
+ - Rakefile
36
+ - bin/rtranslate
37
+ - lib/rtranslate.rb
38
+ - lib/rtranslate/language.rb
39
+ - lib/rtranslate/rtranslate.rb
40
+ - tests/ts_translate.rb
41
+ test_files: []
42
+
43
+ rdoc_options:
44
+ - --main
45
+ - README.txt
46
+ extra_rdoc_files:
47
+ - Manifest.txt
48
+ executables:
49
+ - rtranslate
50
+ extensions: []
51
+
52
+ requirements: []
53
+
54
+ dependencies:
55
+ - !ruby/object:Gem::Dependency
56
+ name: hpricot
57
+ version_requirement:
58
+ version_requirements: !ruby/object:Gem::Version::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: "0.4"
63
+ version:
64
+ - !ruby/object:Gem::Dependency
65
+ name: hoe
66
+ version_requirement:
67
+ version_requirements: !ruby/object:Gem::Version::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: 1.3.0
72
+ version: