Sha256: dcacca6b45b7c8d8fbe80150816b0f2029464e2e5ff52a53d2becf353b74c843

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

require "uri"
require "net/http"
require "openssl"
require "json"
require "yaml"

# Class comment
class Translation
  def initialize(text, target, source = "en")
    @text = text.gsub("_", "%2C%20")
    @target = target
    @source = source
    @url = URI("https://google-translate1.p.rapidapi.com/language/translate/v2")

    @http = Net::HTTP.new(@url.host, @url.port)
    @http.use_ssl = true
    @http.verify_mode = OpenSSL::SSL::VERIFY_NONE

    @request = Net::HTTP::Post.new(@url)
    @request["content-type"] = "application/x-www-form-urlencoded"
    @request["accept-encoding"] = "application/gzip"
    File.open("config/locales/api_key.txt", "a+") do |f|
      $KEY = f.read
    end
    if $KEY.length <= 2 || $KEY.nil?
      @request["x-rapidapi-key"] = 'Add your google api key!'
    else
      @request["x-rapidapi-key"] = $KEY
    end
    @request["x-rapidapi-host"] = "google-translate1.p.rapidapi.com"
    @request.body = "q=#{@text}!&target=#{@target}&source=#{@source}"
    # Example "q=Hello%2C%20dear%2C%20friend!&target=es&source=en"
  end

  def response
    response = @http.request(@request)
    content = JSON.parse(response.read_body)
    content = content["data"]["translations"].first["translatedText"]
    File.open("config/locales/#{@target}.yml", "a+") do |f|
      f.write({ "translation" => content.to_s }.to_yaml)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
habluhablu-0.5.7 lib/translation.rb