Module: Google::Cloud::Translate::V2

Defined in:
lib/google/cloud/translate/v2.rb,
lib/google/cloud/translate/v2/api.rb,
lib/google/cloud/translate/v2/service.rb,
lib/google/cloud/translate/v2/version.rb,
lib/google/cloud/translate/v2/language.rb,
lib/google/cloud/translate/v2/detection.rb,
lib/google/cloud/translate/v2/credentials.rb,
lib/google/cloud/translate/v2/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.

Defined Under Namespace

Classes: Api, Credentials, Detection, Language, Translation

Constant Summary collapse

VERSION =
"0.2.0".freeze

Class Method Summary collapse

Class Method Details

.new(project_id: nil, credentials: nil, key: nil, scope: nil, retries: nil, timeout: nil, endpoint: nil) ⇒ Google::Cloud::Translate::V2::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/v2"

translate = Google::Cloud::Translate::V2.new(
  version: :v2,
  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/v2"

translate = Google::Cloud::Translate::V2.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/v2"

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

translate = Google::Cloud::Translate::V2.new

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

Parameters:

  • project_id (String) (defaults to: nil)

    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) (defaults to: nil)

    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) (defaults to: nil)

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

  • scope (String, Array<String>) (defaults to: nil)

    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) (defaults to: nil)

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

  • timeout (Integer) (defaults to: nil)

    Default timeout to use in requests. Optional.

  • endpoint (String) (defaults to: nil)

    Override of the endpoint host name. Optional. If the param is nil, uses the default endpoint.

Returns:

Raises:

  • (ArgumentError)


101
102
103
104
105
106
107
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
# File 'lib/google/cloud/translate/v2.rb', line 101

def self.new project_id: nil, credentials: nil, key: nil, scope: nil, retries: nil, timeout: nil, endpoint: nil
  project_id ||= default_project_id

  configuration = translation_config
  key ||= configuration&.key || ENV["TRANSLATE_KEY"] || ENV["GOOGLE_CLOUD_KEY"]
  retries ||= configuration&.retries
  timeout ||= configuration&.timeout
  endpoint ||= configuration&.endpoint

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

  scope ||= configuration&.scope
  credentials ||= default_credentials scope: scope

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

  project_id = resolve_project_id project_id, credentials
  raise ArgumentError, "project_id is missing" if project_id.empty?

  Google::Cloud::Translate::V2::Api.new(
    Google::Cloud::Translate::V2::Service.new(
      project_id, credentials, retries: retries, timeout: timeout, host: endpoint
    )
  )
end