aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/migrate/097_add_comment_locale.rb10
-rw-r--r--lib/google_translate.rb18
-rw-r--r--spec/fixtures/public_body_translations.yml43
3 files changed, 71 insertions, 0 deletions
diff --git a/db/migrate/097_add_comment_locale.rb b/db/migrate/097_add_comment_locale.rb
new file mode 100644
index 000000000..92ac7c4a5
--- /dev/null
+++ b/db/migrate/097_add_comment_locale.rb
@@ -0,0 +1,10 @@
+class AddCommentLocale < ActiveRecord::Migration
+ def self.up
+ add_column :comments, :locale, :text, :null => false, :default => ""
+ end
+
+ def self.down
+ remove_column :comments, :locale
+ end
+end
+
diff --git a/lib/google_translate.rb b/lib/google_translate.rb
new file mode 100644
index 000000000..369e1de3b
--- /dev/null
+++ b/lib/google_translate.rb
@@ -0,0 +1,18 @@
+require 'rubygems'
+require 'net/http'
+require 'open-uri'
+require 'cgi'
+require 'json'
+
+def detect_language(request, translate_string)
+ google_api_key = ''
+ user_ip = URI.encode(request.env['REMOTE_ADDR'])
+ translate_string = URI.encode(translate_string)
+ url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=#{translate_string}&userip=#{user_ip}"
+ if google_api_key != ''
+ url += "&key=#{google_api_key}"
+ end
+ response = Net::HTTP.get_response(URI.parse(url))
+ result = JSON.parse(response.body)
+ result['responseData']['language']
+end
diff --git a/spec/fixtures/public_body_translations.yml b/spec/fixtures/public_body_translations.yml
new file mode 100644
index 000000000..225994041
--- /dev/null
+++ b/spec/fixtures/public_body_translations.yml
@@ -0,0 +1,43 @@
+geraldine_public_body_translation:
+ name: El Geraldine Quango
+ first_letter: E
+ request_email: geraldine-requests@localhost
+ id: "1"
+ public_body_id: "2"
+ short_name: eTGQ
+ url_name: etgq
+ locale: es
+ notes: ""
+
+geraldine_public_body_translation:
+ name: Geraldine Quango
+ first_letter: G
+ request_email: geraldine-requests@localhost
+ id: "2"
+ public_body_id: "2"
+ short_name: TGQ
+ url_name: tgq
+ locale: en
+ notes: ""
+
+humpadink_public_body_translation:
+ name: "El Department for Humpadinking"
+ first_letter: E
+ request_email: humpadink-requests@localhost
+ id: "3"
+ public_body_id: "3"
+ short_name: eDfH
+ url_name: edfh
+ locale: es
+ notes: An albatross told me!!!
+
+humpadink_public_body_translation:
+ name: "Department for Humpadinking"
+ first_letter: D
+ request_email: humpadink-requests@localhost
+ id: "4"
+ public_body_id: "3"
+ short_name: DfH
+ url_name: dfh
+ locale: en
+ notes: An albatross told me!!!