Module: Google::Cloud::Translate

Defined in:
lib/google/cloud/translate.rb,
lib/google/cloud/translate/api.rb,
lib/google/cloud/translate/service.rb,
lib/google/cloud/translate/version.rb,
lib/google/cloud/translate/language.rb,
lib/google/cloud/translate/detection.rb,
lib/google/cloud/translate/credentials.rb,
lib/google/cloud/translate/translation.rb

Overview

Google Cloud Translation API

Google Cloud Translation API provides a simple, programmatic interface for translating an arbitrary string into any supported language. It is highly responsive, so websites and applications can integrate with Translation API for fast, dynamic translation of source text. Language detection is also available in cases where the source language is unknown.

Translation API supports more than one hundred different languages, from Afrikaans to Zulu. Used in combination, this enables translation between thousands of language pairs. Also, you can send in HTML and receive HTML with translated text back. You don't need to extract your source text or reassemble the translated content.

See Translation Overview.

Defined Under Namespace

Classes: Api, Credentials, Detection, Language, Translation

Constant Summary collapse

VERSION =
"1.3.1".freeze

Class Method Summary collapse

Class Method Details

.configure {|Google::Cloud.configure.translate| ... } ⇒ Google::Cloud::Config

Configure the Google Cloud Translate library.

The following Translate configuration parameters are supported:

  • project_id - (String) Identifier for a Translate project. (The parameter project is considered deprecated, but may also be used.)
  • credentials - (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials) (The parameter keyfile is considered deprecated, but may also be used.)
  • scope - (String, Array) The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access.
  • retries - (Integer) Number of times to retry requests on server error.
  • timeout - (Integer) Default timeout to use in requests.

Yields:

Returns:

  • (Google::Cloud::Config)

    The configuration object the Google::Cloud::Translate library uses.



161
162
163
164
165
# File 'lib/google/cloud/translate.rb', line 161

def self.configure
  yield Google::Cloud.configure.translate if block_given?

  Google::Cloud.configure.translate
end

.new(project_id: nil, credentials: nil, key: nil, scope: nil, retries: nil, timeout: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::Translate::Api

Creates a new object for connecting to Cloud Translation API. Each call creates a new connection.

Like other Cloud Platform services, Google Cloud Translation API supports authentication using a project ID and OAuth 2.0 credentials. In addition, it supports authentication using a public API access key. (If both the API key and the project and OAuth 2.0 credentials are provided, the API key will be used.) Instructions and configuration options are covered in the Authentication Guide.

Examples:

require "google/cloud/translate"

translate = Google::Cloud::Translate.new(
  project_id: "my-todo-project",
  credentials: "/path/to/keyfile.json"
)

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

Using API Key.

require "google/cloud/translate"

translate = Google::Cloud::Translate.new(
  key: "api-key-abc123XYZ789"
)

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

Using API Key from the environment variable.

require "google/cloud/translate"

ENV["TRANSLATE_KEY"] = "api-key-abc123XYZ789"

translate = Google::Cloud::Translate.new

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

Parameters:

  • project_id (String)

    Project identifier for the Cloud Translation service you are connecting to. If not present, the default project for the credentials is used.

  • credentials (String, Hash, Google::Auth::Credentials)

    The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials)

  • key (String)

    a public API access key (not an OAuth 2.0 token)

  • scope (String, Array<String>)

    The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. See Using OAuth 2.0 to Access Google APIs.

    The default scope is:

    • https://www.googleapis.com/auth/cloud-platform
  • retries (Integer)

    Number of times to retry requests on server error. The default value is 3. Optional.

  • timeout (Integer)

    Default timeout to use in requests. Optional.

  • project (String)

    Alias for the project_id argument. Deprecated.

  • keyfile (String)

    Alias for the credentials argument. Deprecated.

Returns:

Raises:

  • (ArgumentError)


108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/google/cloud/translate.rb', line 108

def self.new project_id: nil, credentials: nil, key: nil, scope: nil,
             retries: nil, timeout: nil, project: nil, keyfile: nil
  project_id ||= (project || default_project_id)
  key        ||= configure.key

  if key
    return Google::Cloud::Translate::Api.new(
      Google::Cloud::Translate::Service.new(
        project_id.to_s, nil, retries: retries, timeout: timeout, key: key
      )
    )
  end

  scope       ||= configure.scope
  retries     ||= configure.retries
  timeout     ||= configure.timeout
  credentials ||= keyfile || default_credentials(scope: scope)

  unless credentials.is_a? Google::Auth::Credentials
    credentials = Translate::Credentials.new credentials, scope: scope
  end

  project_id ||= credentials.project_id if credentials.respond_to? :project_id
  project_id = project_id.to_s # Always cast to a string
  raise ArgumentError, "project_id is missing" if project_id.empty?

  Translate::Api.new(
    Translate::Service.new(
      project_id, credentials, retries: retries, timeout: timeout
    )
  )
end