Class: Google::Cloud::Translate::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/google/cloud/translate/api.rb

Overview

Api

Represents top-level access to the Google Translate API. Each instance requires a public API access key. To create a key, follow the general instructions at Identifying your application to Google, and the specific instructions for Server keys. See Google::Cloud#translate.

Examples:

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

translation = translate.translate "Hello world!", to: "la"

puts translation #=> Salve mundi!

translation.from #=> "en"
translation.origin #=> "Hello world!"
translation.to #=> "la"
translation.text #=> "Salve mundi!"

See Also:

Instance Method Summary collapse

Instance Method Details

#detect(*text) ⇒ Detection+

Detect the most likely language or languages of a text or multiple texts.

Examples:

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

detection = translate.detect "Hello world!"
puts detection.language #=> en
puts detection.confidence #=> 0.7100697

Detecting multiple texts.

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

detections = translate.detect "Hello world!",
                              "Bonjour le monde!"
puts detections.count #=> 2
puts detection.first.language #=> en
puts detection.first.confidence #=> 0.7100697
puts detection.last.language #=> fr
puts detection.last.confidence #=> 0.40440267

Parameters:

  • text (String)

    The text or texts upon which language detection should be performed.

Returns:

See Also:



191
192
193
194
195
196
# File 'lib/google/cloud/translate/api.rb', line 191

def detect *text
  return nil if text.empty?
  text = Array(text).flatten
  gapi = service.detect(text)
  Detection.from_gapi gapi, text
end

#languages(language = nil) ⇒ Array<Language>

List the languages supported by the API. These are the languages to and from which text can be translated.

Examples:

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

languages = translate.languages
languages.count #=> 104

english = languages.detect { |l| l.code == "en" }
english.name #=> nil

Get all languages with their names in French.

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

languages = translate.languages "fr"
languages.count #=> 104

english = languages.detect { |l| l.code == "en" }
english.name #=> "Anglais"

Parameters:

  • language (String) (defaults to: nil)

    The language and collation in which the names of the languages are returned. If this is nil then no names are returned.

Returns:

See Also:



236
237
238
239
240
# File 'lib/google/cloud/translate/api.rb', line 236

def languages language = nil
  language = language.to_s if language
  gapi = service.languages language
  Array(gapi.languages).map { |g| Language.from_gapi g }
end

#translate(*text, to: nil, from: nil, format: nil, cid: nil) ⇒ Translation+

Returns text translations from one language to another.

Examples:

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

translation = translate.translate "Hello world!", to: "la"

puts translation #=> Salve mundi!

translation.detected? #=> true
translation.from #=> "en"
translation.origin #=> "Hello world!"
translation.to #=> "la"
translation.text #=> "Salve mundi!"

Setting the from language.

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

translation = translate.translate "Hello world!",
                                  from: :en, to: :la
translation.detected? #=> false
translation.text #=> "Salve mundi!"

Retrieving multiple translations.

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

translations = translate.translate "Hello my friend.",
                                   "See you soon.",
                                   from: "en", to: "la"
translations.count #=> 2
translations[0].text #=> "Salve amice."
translations[1].text #=> "Vide te mox."

Preserving HTML tags.

require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

translation = translate.translate "<strong>Hello</strong> world!",
                                  to: :la
translation.text #=> "<strong>Salve</strong> mundi!"

Parameters:

  • text (String)

    The text or texts to translate.

  • to (String)

    The target language into which the text should be translated. This is required. The value must be an ISO 639-1 language code.

  • from (String)

    The source language of the text or texts. This is an ISO 639-1 language code. This is optional.

  • format (String)

    The format of the text. Possible values include :text and :html. This is optional. The Translate API default is :html.

  • cid (String)

    The customization id for translate. This is optional.

Returns:

See Also:



141
142
143
144
145
146
147
148
149
150
151
# File 'lib/google/cloud/translate/api.rb', line 141

def translate *text, to: nil, from: nil, format: nil, cid: nil
  return nil if text.empty?
  fail ArgumentError, "to is required" if to.nil?
  to = to.to_s
  from = from.to_s if from
  format = format.to_s if format
  text = Array(text).flatten
  gapi = service.translate text, to: to, from: from,
                                 format: format, cid: cid
  Translation.from_gapi_list gapi, text, to, from
end