diff options
-rw-r--r-- | db/migrate/097_add_comment_locale.rb | 10 | ||||
-rw-r--r-- | lib/google_translate.rb | 18 | ||||
-rw-r--r-- | spec/fixtures/public_body_translations.yml | 43 |
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!!! |