google-cloud-translate 1.4.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +6 -2
- data/CHANGELOG.md +33 -0
- data/CONTRIBUTING.md +1 -1
- data/LICENSE +1 -1
- data/OVERVIEW.md +223 -18
- data/lib/google-cloud-translate.rb +79 -91
- data/lib/google/cloud/translate.rb +127 -114
- data/lib/google/cloud/translate/v2.rb +169 -0
- data/lib/google/cloud/translate/v2/api.rb +255 -0
- data/lib/google/cloud/translate/v2/credentials.rb +58 -0
- data/lib/google/cloud/translate/v2/detection.rb +132 -0
- data/lib/google/cloud/translate/v2/language.rb +68 -0
- data/lib/google/cloud/translate/v2/service.rb +205 -0
- data/lib/google/cloud/translate/v2/translation.rb +120 -0
- data/lib/google/cloud/translate/v3.rb +144 -0
- data/lib/google/cloud/translate/v3/credentials.rb +42 -0
- data/lib/google/cloud/translate/v3/doc/google/cloud/translate/v3/translation_service.rb +663 -0
- data/lib/google/cloud/translate/v3/doc/google/longrunning/operations.rb +51 -0
- data/lib/google/cloud/translate/v3/doc/google/protobuf/any.rb +131 -0
- data/lib/google/cloud/translate/v3/doc/google/protobuf/timestamp.rb +113 -0
- data/lib/google/cloud/translate/v3/doc/google/rpc/status.rb +87 -0
- data/lib/google/cloud/translate/v3/translation_service_client.rb +927 -0
- data/lib/google/cloud/translate/v3/translation_service_client_config.json +66 -0
- data/lib/google/cloud/translate/v3/translation_service_pb.rb +226 -0
- data/lib/google/cloud/translate/v3/translation_service_services_pb.rb +68 -0
- data/lib/google/cloud/translate/version.rb +1 -1
- metadata +47 -37
- data/lib/google/cloud/translate/api.rb +0 -274
- data/lib/google/cloud/translate/credentials.rb +0 -57
- data/lib/google/cloud/translate/detection.rb +0 -139
- data/lib/google/cloud/translate/language.rb +0 -70
- data/lib/google/cloud/translate/service.rb +0 -206
- data/lib/google/cloud/translate/translation.rb +0 -125
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2019 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
require "google-cloud-translate"
|
17
|
-
require "google/cloud/translate/api"
|
18
17
|
require "google/cloud/config"
|
19
|
-
require "google/
|
18
|
+
require "google/gax"
|
19
|
+
require "pathname"
|
20
20
|
|
21
21
|
module Google
|
22
22
|
module Cloud
|
@@ -36,50 +36,113 @@ module Google
|
|
36
36
|
# with translated text back. You don't need to extract your source text or
|
37
37
|
# reassemble the translated content.
|
38
38
|
#
|
39
|
+
# The google-cloud-translate 2.0 gem contains a generated v3 client and a legacy hand-written v2 client.
|
40
|
+
# To use the legacy v2 client, call {Google::Cloud::Translate.new} and specify `version: :v2`.
|
41
|
+
# See [Migrating to Translation v3](https://cloud.google.com/translate/docs/migrate-to-v3) for details regarding
|
42
|
+
# differences between v2 and v3.
|
43
|
+
#
|
39
44
|
# See {file:OVERVIEW.md Translation Overview}.
|
40
45
|
#
|
41
46
|
module Translate
|
47
|
+
FILE_DIR = File.realdirpath Pathname.new(__FILE__).join("..").join("translate")
|
48
|
+
|
49
|
+
AVAILABLE_VERSIONS = Dir["#{FILE_DIR}/*"]
|
50
|
+
.select { |file| File.directory? file }
|
51
|
+
.select { |dir| Google::Gax::VERSION_MATCHER.match File.basename(dir) }
|
52
|
+
.select { |dir| File.exist? dir + ".rb" }
|
53
|
+
.map { |dir| File.basename dir }
|
54
|
+
|
42
55
|
##
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
# the
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
77
|
-
# @
|
78
|
-
#
|
79
|
-
#
|
56
|
+
# Provides natural language translation operations.
|
57
|
+
#
|
58
|
+
# @overload new(version:, credentials:, scopes:, client_config:, timeout:)
|
59
|
+
# @param version [Symbol, String]
|
60
|
+
# The major version of the service to be used. By default `:v3` is used.
|
61
|
+
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel,
|
62
|
+
# GRPC::Core::ChannelCredentials, Proc]
|
63
|
+
# Provides the means for authenticating requests made by the client. This parameter can be many types.
|
64
|
+
# A `Google::Auth::Credentials` uses a the properties of its represented keyfile for authenticating requests
|
65
|
+
# made by this client.
|
66
|
+
# A `String` will be treated as the path to the keyfile to be used for the construction of credentials for
|
67
|
+
# this client.
|
68
|
+
# A `Hash` will be treated as the contents of a keyfile to be used for the construction of credentials for
|
69
|
+
# this client.
|
70
|
+
# A `GRPC::Core::Channel` will be used to make calls through.
|
71
|
+
# A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials should already
|
72
|
+
# be composed with a `GRPC::Core::CallCredentials` object.
|
73
|
+
# A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the metadata for
|
74
|
+
# requests, generally, to give OAuth credentials.
|
75
|
+
# @param scopes [Array<String>]
|
76
|
+
# The OAuth scopes for this service. This parameter is ignored if an updater_proc is supplied.
|
77
|
+
# @param client_config [Hash]
|
78
|
+
# A Hash for call options for each method. See Google::Gax#construct_settings for the structure of this data.
|
79
|
+
# Falls back to the default config if not specified or the specified config is missing data points.
|
80
|
+
# @param timeout [Numeric]
|
81
|
+
# The default timeout, in seconds, for calls made through this client.
|
82
|
+
# @param metadata [Hash]
|
83
|
+
# Default metadata to be sent with each request. This can be overridden on a per call basis.
|
84
|
+
# @param service_address [String]
|
85
|
+
# Override for the service hostname, or `nil` to leave as the default.
|
86
|
+
# @param service_port [Integer]
|
87
|
+
# Override for the service port, or `nil` to leave as the default.
|
88
|
+
# @param exception_transformer [Proc]
|
89
|
+
# An optional proc that intercepts any exceptions raised during an API call to inject custom error handling.
|
90
|
+
# @overload new(version:, project_id:, credentials:, key:, scope:, retries:, timeout:, endpoint:)
|
91
|
+
# @param version [Symbol, String]
|
92
|
+
# The major version of the service to be used. Specifying `:v2` will return the legacy client.
|
93
|
+
# @param [String] project_id Project identifier for the Cloud Translation service you are connecting to. If not
|
94
|
+
# present, the default project for the credentials is used.
|
95
|
+
# @param [String, Hash, Google::Auth::Credentials] credentials The path to the keyfile as a String, the contents
|
96
|
+
# of the keyfile as a Hash, or a Google::Auth::Credentials object. (See
|
97
|
+
# {Google::Cloud::Translate::V2::Credentials})
|
98
|
+
# @param [String] key a public API access key (not an OAuth 2.0 token)
|
99
|
+
# @param [String, Array<String>] scope The OAuth 2.0 scopes controlling the set of resources and operations that
|
100
|
+
# the connection can access. See [Using OAuth 2.0 to Access Google
|
101
|
+
# APIs](https://developers.google.com/identity/protocols/OAuth2).
|
102
|
+
#
|
103
|
+
# The default scope is:
|
104
|
+
#
|
105
|
+
# * `https://www.googleapis.com/auth/cloud-platform`
|
106
|
+
# @param [Integer] retries Number of times to retry requests on server error. The default value is `3`.
|
107
|
+
# Optional.
|
108
|
+
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
109
|
+
# @param [String] endpoint Override of the endpoint host name. Optional. If the param is nil, uses the default
|
110
|
+
# endpoint.
|
111
|
+
#
|
112
|
+
# @example Using the v3 client.
|
113
|
+
# require "google/cloud/translate"
|
114
|
+
#
|
115
|
+
# client = Google::Cloud::Translate.new
|
116
|
+
#
|
117
|
+
# project_id = "my-project-id"
|
118
|
+
# location_id = "us-central1"
|
119
|
+
# model_id = "my-automl-model-id"
|
120
|
+
#
|
121
|
+
# # The `model` type requested for this translation.
|
122
|
+
# model = "projects/#{project_id}/locations/#{location_id}/models/#{model_id}"
|
123
|
+
# # The content to translate in string format
|
124
|
+
# contents = ["Hello, world!"]
|
125
|
+
# # Required. The BCP-47 language code to use for translation.
|
126
|
+
# target_language = "fr"
|
127
|
+
# # Optional. The BCP-47 language code of the input text.
|
128
|
+
# source_language = "en"
|
129
|
+
# # Optional. Can be "text/plain" or "text/html".
|
130
|
+
# mime_type = "text/plain"
|
131
|
+
# parent = client.class.location_path project_id, location_id
|
132
|
+
#
|
133
|
+
# response = client.translate_text contents, target_language, parent,
|
134
|
+
# source_language_code: source_language, model: model, mime_type: mime_type
|
135
|
+
#
|
136
|
+
# # Display the translation for each input text provided
|
137
|
+
# response.translations.each do |translation|
|
138
|
+
# puts "Translated text: #{translation.translated_text}"
|
139
|
+
# end
|
140
|
+
#
|
141
|
+
# @example Using the legacy v2 client.
|
80
142
|
# require "google/cloud/translate"
|
81
143
|
#
|
82
144
|
# translate = Google::Cloud::Translate.new(
|
145
|
+
# version: :v2,
|
83
146
|
# project_id: "my-todo-project",
|
84
147
|
# credentials: "/path/to/keyfile.json"
|
85
148
|
# )
|
@@ -87,10 +150,11 @@ module Google
|
|
87
150
|
# translation = translate.translate "Hello world!", to: "la"
|
88
151
|
# translation.text #=> "Salve mundi!"
|
89
152
|
#
|
90
|
-
# @example Using API Key.
|
153
|
+
# @example Using the legacy v2 client with an API Key.
|
91
154
|
# require "google/cloud/translate"
|
92
155
|
#
|
93
156
|
# translate = Google::Cloud::Translate.new(
|
157
|
+
# version: :v2,
|
94
158
|
# key: "api-key-abc123XYZ789"
|
95
159
|
# )
|
96
160
|
#
|
@@ -102,45 +166,23 @@ module Google
|
|
102
166
|
#
|
103
167
|
# ENV["TRANSLATE_KEY"] = "api-key-abc123XYZ789"
|
104
168
|
#
|
105
|
-
# translate = Google::Cloud::Translate.new
|
169
|
+
# translate = Google::Cloud::Translate.new version: :v2
|
106
170
|
#
|
107
171
|
# translation = translate.translate "Hello world!", to: "la"
|
108
172
|
# translation.text #=> "Salve mundi!"
|
109
173
|
#
|
110
|
-
def self.new
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
key ||= configure.key
|
115
|
-
retries ||= configure.retries
|
116
|
-
timeout ||= configure.timeout
|
117
|
-
endpoint ||= configure.endpoint
|
118
|
-
|
119
|
-
if key
|
120
|
-
return Google::Cloud::Translate::Api.new(
|
121
|
-
Google::Cloud::Translate::Service.new(
|
122
|
-
project_id.to_s, nil,
|
123
|
-
retries: retries, timeout: timeout, key: key, host: endpoint
|
124
|
-
)
|
125
|
-
)
|
174
|
+
def self.new *args, version: :v3, **kwargs
|
175
|
+
unless AVAILABLE_VERSIONS.include? version.to_s.downcase
|
176
|
+
raise "The version: #{version} is not available. The available versions " \
|
177
|
+
"are: [#{AVAILABLE_VERSIONS.join ', '}]"
|
126
178
|
end
|
127
179
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
project_id = resolve_project_id project_id, credentials
|
136
|
-
raise ArgumentError, "project_id is missing" if project_id.empty?
|
137
|
-
|
138
|
-
Translate::Api.new(
|
139
|
-
Translate::Service.new(
|
140
|
-
project_id, credentials,
|
141
|
-
retries: retries, timeout: timeout, host: endpoint
|
142
|
-
)
|
143
|
-
)
|
180
|
+
require "#{FILE_DIR}/#{version.to_s.downcase}"
|
181
|
+
version_module = Google::Cloud::Translate
|
182
|
+
.constants
|
183
|
+
.select { |sym| sym.to_s.casecmp(version.to_s).zero? }
|
184
|
+
.first
|
185
|
+
Google::Cloud::Translate.const_get(version_module).new(*args, **kwargs)
|
144
186
|
end
|
145
187
|
|
146
188
|
##
|
@@ -148,54 +190,25 @@ module Google
|
|
148
190
|
#
|
149
191
|
# The following Translate configuration parameters are supported:
|
150
192
|
#
|
151
|
-
# * `project_id` - (String) Identifier for a Translate project.
|
152
|
-
#
|
153
|
-
#
|
154
|
-
#
|
155
|
-
#
|
156
|
-
#
|
157
|
-
# * `
|
158
|
-
# the set of resources and operations that the connection can access.
|
159
|
-
# * `retries` - (Integer) Number of times to retry requests on server
|
160
|
-
# error.
|
193
|
+
# * `project_id` - (String) Identifier for a Translate project.
|
194
|
+
# * `credentials` - (String, Hash, Google::Auth::Credentials) The path to the keyfile as a String, the contents of
|
195
|
+
# the keyfile as a Hash, or a Google::Auth::Credentials object. (See
|
196
|
+
# {Google::Cloud::Translate::V2::Credentials})
|
197
|
+
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling the set of resources and operations that
|
198
|
+
# the connection can access.
|
199
|
+
# * `retries` - (Integer) Number of times to retry requests on server error.
|
161
200
|
# * `timeout` - (Integer) Default timeout to use in requests.
|
162
|
-
# * `endpoint` - (String) Override of the endpoint host name, or `nil`
|
163
|
-
#
|
201
|
+
# * `endpoint` - (String) Override of the endpoint host name, or `nil` to use the default endpoint.
|
202
|
+
#
|
203
|
+
# @note These values are only used by the legacy v2 client.
|
164
204
|
#
|
165
|
-
# @return [Google::Cloud::Config] The configuration object the
|
166
|
-
# Google::Cloud::Translate library uses.
|
205
|
+
# @return [Google::Cloud::Config] The configuration object the Google::Cloud::Translate library uses.
|
167
206
|
#
|
168
207
|
def self.configure
|
169
208
|
yield Google::Cloud.configure.translate if block_given?
|
170
209
|
|
171
210
|
Google::Cloud.configure.translate
|
172
211
|
end
|
173
|
-
|
174
|
-
##
|
175
|
-
# @private Default project.
|
176
|
-
def self.default_project_id
|
177
|
-
Google::Cloud.configure.translate.project_id ||
|
178
|
-
Google::Cloud.configure.project_id ||
|
179
|
-
Google::Cloud.env.project_id
|
180
|
-
end
|
181
|
-
|
182
|
-
##
|
183
|
-
# @private Default credentials.
|
184
|
-
def self.default_credentials scope: nil
|
185
|
-
Google::Cloud.configure.translate.credentials ||
|
186
|
-
Google::Cloud.configure.credentials ||
|
187
|
-
Translate::Credentials.default(scope: scope)
|
188
|
-
end
|
189
|
-
|
190
|
-
##
|
191
|
-
# @private Resolve project.
|
192
|
-
def self.resolve_project_id project_id, credentials
|
193
|
-
# Always cast to a string
|
194
|
-
return project_id.to_s unless credentials.respond_to? :project_id
|
195
|
-
|
196
|
-
# Always cast to a string
|
197
|
-
project_id || credentials.project_id.to_s
|
198
|
-
end
|
199
212
|
end
|
200
213
|
end
|
201
214
|
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
# Copyright 2016 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
|
16
|
+
require "google-cloud-translate"
|
17
|
+
require "google/cloud/translate/v2/api"
|
18
|
+
require "google/cloud/config"
|
19
|
+
require "google/cloud/env"
|
20
|
+
|
21
|
+
module Google
|
22
|
+
module Cloud
|
23
|
+
module Translate
|
24
|
+
##
|
25
|
+
# # Google Cloud Translation API
|
26
|
+
#
|
27
|
+
# [Google Cloud Translation API](https://cloud.google.com/translation/)
|
28
|
+
# provides a simple, programmatic interface for translating an arbitrary
|
29
|
+
# string into any supported language. It is highly responsive, so websites
|
30
|
+
# and applications can integrate with Translation API for fast, dynamic
|
31
|
+
# translation of source text. Language detection is also available in cases
|
32
|
+
# where the source language is unknown.
|
33
|
+
#
|
34
|
+
# Translation API supports more than one hundred different languages, from
|
35
|
+
# Afrikaans to Zulu. Used in combination, this enables translation between
|
36
|
+
# thousands of language pairs. Also, you can send in HTML and receive HTML
|
37
|
+
# with translated text back. You don't need to extract your source text or
|
38
|
+
# reassemble the translated content.
|
39
|
+
#
|
40
|
+
# See {file:OVERVIEW.md Translation Overview}.
|
41
|
+
#
|
42
|
+
module V2
|
43
|
+
##
|
44
|
+
# Creates a new object for connecting to Cloud Translation API. Each call creates a new connection.
|
45
|
+
#
|
46
|
+
# Like other Cloud Platform services, Google Cloud Translation API supports authentication using a project ID
|
47
|
+
# and OAuth 2.0 credentials. In addition, it supports authentication using a public API access key. (If both the
|
48
|
+
# API key and the project and OAuth 2.0 credentials are provided, the API key will be used.) Instructions and
|
49
|
+
# configuration options are covered in the {file:AUTHENTICATION.md Authentication Guide}.
|
50
|
+
#
|
51
|
+
# @param [String] project_id Project identifier for the Cloud Translation service you are connecting to. If not
|
52
|
+
# present, the default project for the credentials is used.
|
53
|
+
# @param [String, Hash, Google::Auth::Credentials] credentials The path to the keyfile as a String, the contents
|
54
|
+
# of the keyfile as a Hash, or a Google::Auth::Credentials object. (See {Translate::V2::Credentials})
|
55
|
+
# @param [String] key a public API access key (not an OAuth 2.0 token)
|
56
|
+
# @param [String, Array<String>] scope The OAuth 2.0 scopes controlling the set of resources and operations that
|
57
|
+
# the connection can access. See [Using OAuth 2.0 to Access Google
|
58
|
+
# APIs](https://developers.google.com/identity/protocols/OAuth2).
|
59
|
+
#
|
60
|
+
# The default scope is:
|
61
|
+
#
|
62
|
+
# * `https://www.googleapis.com/auth/cloud-platform`
|
63
|
+
# @param [Integer] retries Number of times to retry requests on server error. The default value is `3`.
|
64
|
+
# Optional.
|
65
|
+
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
66
|
+
# @param [String] endpoint Override of the endpoint host name. Optional. If the param is nil, uses the default
|
67
|
+
# endpoint.
|
68
|
+
#
|
69
|
+
# @return [Google::Cloud::Translate::V2::Api]
|
70
|
+
#
|
71
|
+
# @example
|
72
|
+
# require "google/cloud/translate/v2"
|
73
|
+
#
|
74
|
+
# translate = Google::Cloud::Translate::V2.new(
|
75
|
+
# version: :v2,
|
76
|
+
# project_id: "my-todo-project",
|
77
|
+
# credentials: "/path/to/keyfile.json"
|
78
|
+
# )
|
79
|
+
#
|
80
|
+
# translation = translate.translate "Hello world!", to: "la"
|
81
|
+
# translation.text #=> "Salve mundi!"
|
82
|
+
#
|
83
|
+
# @example Using API Key.
|
84
|
+
# require "google/cloud/translate/v2"
|
85
|
+
#
|
86
|
+
# translate = Google::Cloud::Translate::V2.new(
|
87
|
+
# key: "api-key-abc123XYZ789"
|
88
|
+
# )
|
89
|
+
#
|
90
|
+
# translation = translate.translate "Hello world!", to: "la"
|
91
|
+
# translation.text #=> "Salve mundi!"
|
92
|
+
#
|
93
|
+
# @example Using API Key from the environment variable.
|
94
|
+
# require "google/cloud/translate/v2"
|
95
|
+
#
|
96
|
+
# ENV["TRANSLATE_KEY"] = "api-key-abc123XYZ789"
|
97
|
+
#
|
98
|
+
# translate = Google::Cloud::Translate::V2.new
|
99
|
+
#
|
100
|
+
# translation = translate.translate "Hello world!", to: "la"
|
101
|
+
# translation.text #=> "Salve mundi!"
|
102
|
+
#
|
103
|
+
def self.new project_id: nil, credentials: nil, key: nil, scope: nil, retries: nil, timeout: nil, endpoint: nil
|
104
|
+
project_id ||= default_project_id
|
105
|
+
key ||= Google::Cloud.configure.translate.key
|
106
|
+
retries ||= Google::Cloud.configure.translate.retries
|
107
|
+
timeout ||= Google::Cloud.configure.translate.timeout
|
108
|
+
endpoint ||= Google::Cloud.configure.translate.endpoint
|
109
|
+
|
110
|
+
if key
|
111
|
+
return Google::Cloud::Translate::V2::Api.new(
|
112
|
+
Google::Cloud::Translate::V2::Service.new(
|
113
|
+
project_id.to_s, nil, retries: retries, timeout: timeout, key: key, host: endpoint
|
114
|
+
)
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
scope ||= Google::Cloud.configure.translate.scope
|
119
|
+
credentials ||= default_credentials scope: scope
|
120
|
+
|
121
|
+
unless credentials.is_a? Google::Auth::Credentials
|
122
|
+
credentials = Google::Cloud::Translate::V2::Credentials.new credentials, scope: scope
|
123
|
+
end
|
124
|
+
|
125
|
+
project_id = resolve_project_id project_id, credentials
|
126
|
+
raise ArgumentError, "project_id is missing" if project_id.empty?
|
127
|
+
|
128
|
+
Google::Cloud::Translate::V2::Api.new(
|
129
|
+
Google::Cloud::Translate::V2::Service.new(
|
130
|
+
project_id, credentials, retries: retries, timeout: timeout, host: endpoint
|
131
|
+
)
|
132
|
+
)
|
133
|
+
end
|
134
|
+
|
135
|
+
##
|
136
|
+
# @private Default project.
|
137
|
+
def self.default_project_id
|
138
|
+
Google::Cloud.configure.translate.project_id ||
|
139
|
+
Google::Cloud.configure.project_id ||
|
140
|
+
Google::Cloud.env.project_id
|
141
|
+
end
|
142
|
+
|
143
|
+
##
|
144
|
+
# @private Default credentials.
|
145
|
+
def self.default_credentials scope: nil
|
146
|
+
Google::Cloud.configure.translate.credentials ||
|
147
|
+
Google::Cloud.configure.credentials ||
|
148
|
+
Google::Cloud::Translate::V2::Credentials.default(scope: scope)
|
149
|
+
end
|
150
|
+
|
151
|
+
##
|
152
|
+
# @private Default configuration.
|
153
|
+
def self.default_config
|
154
|
+
Google::Cloud.configure
|
155
|
+
end
|
156
|
+
|
157
|
+
##
|
158
|
+
# @private Resolve project.
|
159
|
+
def self.resolve_project_id project_id, credentials
|
160
|
+
# Always cast to a string
|
161
|
+
return project_id.to_s unless credentials.respond_to? :project_id
|
162
|
+
|
163
|
+
# Always cast to a string
|
164
|
+
project_id || credentials.project_id.to_s
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|