google-cloud-translate 1.2.4 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md DELETED
@@ -1,76 +0,0 @@
1
- # Release History
2
-
3
- ### 1.2.4 / 2018-09-20
4
-
5
- * Update documentation.
6
- * Change documentation URL to googleapis GitHub org.
7
- * Fix circular require warning.
8
-
9
- ### 1.2.3 / 2018-09-12
10
-
11
- * Add missing documentation files to package.
12
-
13
- ### 1.2.2 / 2018-09-10
14
-
15
- * Update documentation.
16
-
17
- ### 1.2.1 / 2018-08-21
18
-
19
- * Update documentation.
20
-
21
- ### 1.2.0 / 2018-02-27
22
-
23
- * Support Shared Configuration.
24
-
25
- ### 1.1.0 / 2017-11-14
26
-
27
- * Add `Google::Cloud::Translate::Credentials` class.
28
- * Rename constructor arguments to `project_id` and `credentials`.
29
- (The previous arguments `project` and `keyfile` are still supported.)
30
- * Document `Google::Auth::Credentials` as `credentials` value.
31
- * Updated `faraday`, `googleauth` dependencies.
32
-
33
- ### 1.0.1 / 2017-07-11
34
-
35
- * Remove mention of discontinued Premium Edition billing from documentation.
36
-
37
- ### 1.0.0 / 2017-06-28
38
-
39
- * Release 1.0
40
-
41
- ### 0.23.1 / 2017-05-23
42
-
43
- * Fix error handling (adrian-gomez)
44
-
45
- ### 0.23.0 / 2017-03-31
46
-
47
- * No changes
48
-
49
- ### 0.22.2 / 2016-12-22
50
-
51
- * Change product name to Google Cloud Translation API in docs.
52
-
53
- ### 0.22.1 / 2016-11-16
54
-
55
- * Add missing googleauth dependency (frankyn)
56
-
57
- ### 0.22.0 / 2016-11-14
58
-
59
- * Support authentication with service accounts
60
- * Add `model` parameter to translate method
61
- * Add `model` attribute to Translation objects
62
-
63
- ### 0.21.0 / 2016-10-20
64
-
65
- * New service constructor Google::Cloud::Translate.new
66
-
67
- ### 0.20.1 / 2016-09-02
68
-
69
- * Fix for timeout on uploads.
70
-
71
- ### 0.20.0 / 2016-08-26
72
-
73
- This gem contains the Google Cloud Translate service implementation for the `google-cloud` gem. The `google-cloud` gem replaces the old `gcloud` gem. Legacy code can continue to use the `gcloud` gem.
74
-
75
- * Namespace is now `Google::Cloud`
76
- * The `google-cloud` gem is now an umbrella package for individual gems
data/CODE_OF_CONDUCT.md DELETED
@@ -1,40 +0,0 @@
1
- # Contributor Code of Conduct
2
-
3
- As contributors and maintainers of this project, and in the interest of
4
- fostering an open and welcoming community, we pledge to respect all people who
5
- contribute through reporting issues, posting feature requests, updating
6
- documentation, submitting pull requests or patches, and other activities.
7
-
8
- We are committed to making participation in this project a harassment-free
9
- experience for everyone, regardless of level of experience, gender, gender
10
- identity and expression, sexual orientation, disability, personal appearance,
11
- body size, race, ethnicity, age, religion, or nationality.
12
-
13
- Examples of unacceptable behavior by participants include:
14
-
15
- * The use of sexualized language or imagery
16
- * Personal attacks
17
- * Trolling or insulting/derogatory comments
18
- * Public or private harassment
19
- * Publishing other's private information, such as physical or electronic
20
- addresses, without explicit permission
21
- * Other unethical or unprofessional conduct.
22
-
23
- Project maintainers have the right and responsibility to remove, edit, or reject
24
- comments, commits, code, wiki edits, issues, and other contributions that are
25
- not aligned to this Code of Conduct. By adopting this Code of Conduct, project
26
- maintainers commit themselves to fairly and consistently applying these
27
- principles to every aspect of managing this project. Project maintainers who do
28
- not follow or enforce the Code of Conduct may be permanently removed from the
29
- project team.
30
-
31
- This code of conduct applies both within project spaces and in public spaces
32
- when an individual is representing the project or its community.
33
-
34
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
35
- reported by opening an issue or contacting one or more of the project
36
- maintainers.
37
-
38
- This Code of Conduct is adapted from the [Contributor
39
- Covenant](http://contributor-covenant.org), version 1.2.0, available at
40
- [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
data/CONTRIBUTING.md DELETED
@@ -1,188 +0,0 @@
1
- # Contributing to Google Cloud Translation
2
-
3
- 1. **Sign one of the contributor license agreements below.**
4
- 2. Fork the repo, develop and test your code changes.
5
- 3. Send a pull request.
6
-
7
- ## Contributor License Agreements
8
-
9
- Before we can accept your pull requests you'll need to sign a Contributor
10
- License Agreement (CLA):
11
-
12
- - **If you are an individual writing original source code** and **you own the
13
- intellectual property**, then you'll need to sign an [individual
14
- CLA](https://developers.google.com/open-source/cla/individual).
15
- - **If you work for a company that wants to allow you to contribute your work**,
16
- then you'll need to sign a [corporate
17
- CLA](https://developers.google.com/open-source/cla/corporate).
18
-
19
- You can sign these electronically (just scroll to the bottom). After that, we'll
20
- be able to accept your pull requests.
21
-
22
- ## Setup
23
-
24
- In order to use the google-cloud-translate console and run the project's tests,
25
- there is a small amount of setup:
26
-
27
- 1. Install Ruby. google-cloud-translate requires Ruby 2.3+. You may choose to
28
- manage your Ruby and gem installations with [RVM](https://rvm.io/),
29
- [rbenv](https://github.com/rbenv/rbenv), or
30
- [chruby](https://github.com/postmodern/chruby).
31
-
32
- 2. Install [Bundler](http://bundler.io/).
33
-
34
- ```sh
35
- $ gem install bundler
36
- ```
37
-
38
- 3. Install the top-level project dependencies.
39
-
40
- ```sh
41
- $ bundle install
42
- ```
43
-
44
- 4. Install the Translation dependencies.
45
-
46
- ```sh
47
- $ cd google-cloud-translate/
48
- $ bundle exec rake bundleupdate
49
- ```
50
-
51
- ## Console
52
-
53
- In order to run code interactively, you can automatically load
54
- google-cloud-translate and its dependencies in IRB. This requires that your
55
- developer environment has already been configured by following the steps
56
- described in the {file:AUTHENTICATION.md Authentication Guide}. An IRB console
57
- can be created with:
58
-
59
- ```sh
60
- $ cd google-cloud-translate/
61
- $ bundle exec rake console
62
- ```
63
-
64
- ## Translation Tests
65
-
66
- Tests are very important part of google-cloud-translate. All contributions
67
- should include tests that ensure the contributed code behaves as expected.
68
-
69
- To run the unit tests, documentation tests, and code style checks together for a
70
- package:
71
-
72
- ``` sh
73
- $ cd google-cloud-translate/
74
- $ bundle exec rake ci
75
- ```
76
-
77
- To run the command above, plus all acceptance tests, use `rake ci:acceptance` or
78
- its handy alias, `rake ci:a`.
79
-
80
- ### Translation Unit Tests
81
-
82
-
83
- The project uses the [minitest](https://github.com/seattlerb/minitest) library,
84
- including [specs](https://github.com/seattlerb/minitest#specs),
85
- [mocks](https://github.com/seattlerb/minitest#mocks) and
86
- [minitest-autotest](https://github.com/seattlerb/minitest-autotest).
87
-
88
- To run the Translation unit tests:
89
-
90
- ``` sh
91
- $ cd google-cloud-translate/
92
- $ bundle exec rake test
93
- ```
94
-
95
- ### Translation Documentation Tests
96
-
97
- The project tests the code examples in the gem's
98
- [YARD](https://github.com/lsegal/yard)-based documentation.
99
-
100
- The example testing functions in a way that is very similar to unit testing, and
101
- in fact the library providing it,
102
- [yard-doctest](https://github.com/p0deje/yard-doctest), is based on the
103
- project's unit test library, [minitest](https://github.com/seattlerb/minitest).
104
-
105
- To run the Translation documentation tests:
106
-
107
- ``` sh
108
- $ cd google-cloud-translate/
109
- $ bundle exec rake doctest
110
- ```
111
-
112
- If you add, remove or modify documentation examples when working on a pull
113
- request, you may need to update the setup for the tests. The stubs and mocks
114
- required to run the tests are located in `support/doctest_helper.rb`. Please
115
- note that much of the setup is matched by the title of the
116
- [`@example`](http://www.rubydoc.info/gems/yard/file/docs/Tags.md#example) tag.
117
- If you alter an example's title, you may encounter breaking tests.
118
-
119
- ### Translation Acceptance Tests
120
-
121
- The Translation acceptance tests interact with the live service API. Follow the
122
- instructions in the {file:AUTHENTICATION.md Authentication guide} for enabling
123
- the Translation API. Occasionally, some API features may not yet be generally
124
- available, making it difficult for some contributors to successfully run the
125
- entire acceptance test suite. However, please ensure that you do successfully
126
- run acceptance tests for any code areas covered by your pull request.
127
-
128
- To run the acceptance tests, first create and configure a project in the Google
129
- Developers Console, as described in the {file:AUTHENTICATION.md Authentication
130
- guide}. Be sure to download the JSON KEY file. Make note of the PROJECT_ID and
131
- the KEYFILE location on your system.
132
-
133
- Before you can run the Translation acceptance tests, you must first create indexes
134
- used in the tests.
135
-
136
- #### Running the Translation acceptance tests
137
-
138
- To run the Translation acceptance tests:
139
-
140
- ``` sh
141
- $ cd google-cloud-translate/
142
- $ bundle exec rake acceptance[\\{my-project-id},\\{/path/to/keyfile.json}]
143
- ```
144
-
145
- Or, if you prefer you can store the values in the `GCLOUD_TEST_PROJECT` and
146
- `GCLOUD_TEST_KEYFILE` environment variables:
147
-
148
- ``` sh
149
- $ cd google-cloud-translate/
150
- $ export GCLOUD_TEST_PROJECT=\\{my-project-id}
151
- $ export GCLOUD_TEST_KEYFILE=\\{/path/to/keyfile.json}
152
- $ bundle exec rake acceptance
153
- ```
154
-
155
- If you want to use a different project and credentials for acceptance tests, you
156
- can use the more specific `TRANSLATE_TEST_PROJECT` and `TRANSLATE_TEST_KEYFILE`
157
- environment variables:
158
-
159
- ``` sh
160
- $ cd google-cloud-translate/
161
- $ export TRANSLATE_TEST_PROJECT=\\{my-project-id}
162
- $ export TRANSLATE_TEST_KEYFILE=\\{/path/to/keyfile.json}
163
- $ bundle exec rake acceptance
164
- ```
165
-
166
- ## Coding Style
167
-
168
- Please follow the established coding style in the library. The style is is
169
- largely based on [The Ruby Style
170
- Guide](https://github.com/bbatsov/ruby-style-guide) with a few exceptions based
171
- on seattle-style:
172
-
173
- * Avoid parenthesis when possible, including in method definitions.
174
- * Always use double quotes strings. ([Option
175
- B](https://github.com/bbatsov/ruby-style-guide#strings))
176
-
177
- You can check your code against these rules by running Rubocop like so:
178
-
179
- ```sh
180
- $ cd google-cloud-translate/
181
- $ bundle exec rake rubocop
182
- ```
183
-
184
- ## Code of Conduct
185
-
186
- Please note that this project is released with a Contributor Code of Conduct. By
187
- participating in this project you agree to abide by its terms. See
188
- {file:CODE_OF_CONDUCT.md Code of Conduct} for more information.
data/LICENSE DELETED
@@ -1,201 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- https://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright [yyyy] [name of copyright owner]
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- https://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
data/OVERVIEW.md DELETED
@@ -1,185 +0,0 @@
1
- # Google Cloud Translation API
2
-
3
- [Google Cloud Translation API](https://cloud.google.com/translation/)
4
- provides a simple, programmatic interface for translating an arbitrary
5
- string into any supported language. It is highly responsive, so websites
6
- and applications can integrate with Translation API for fast, dynamic
7
- translation of source text. Language detection is also available in cases
8
- where the source language is unknown.
9
-
10
- Translation API supports more than one hundred different languages, from
11
- Afrikaans to Zulu. Used in combination, this enables translation between
12
- thousands of language pairs. Also, you can send in HTML and receive HTML
13
- with translated text back. You don't need to extract your source text or
14
- reassemble the translated content.
15
-
16
- ## Authenticating
17
-
18
- Like other Cloud Platform services, Google Cloud Translation API supports
19
- authentication using a project ID and OAuth 2.0 credentials. In addition,
20
- it supports authentication using a public API access key. (If both the API
21
- key and the project and OAuth 2.0 credentials are provided, the API key
22
- will be used.) Instructions and configuration options are covered in the
23
- {file:AUTHENTICATION.md Authentication Guide}.
24
-
25
- ## Translating texts
26
-
27
- Translating text from one language to another is easy (and extremely
28
- fast.) The only required arguments to
29
- {Google::Cloud::Translate::Api#translate} are a string and the [ISO
30
- 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) code of the
31
- language to which you wish to translate.
32
-
33
- ```ruby
34
- require "google/cloud/translate"
35
-
36
- translate = Google::Cloud::Translate.new
37
-
38
- translation = translate.translate "Hello world!", to: "la"
39
-
40
- puts translation #=> Salve mundi!
41
-
42
- translation.from #=> "en"
43
- translation.origin #=> "Hello world!"
44
- translation.to #=> "la"
45
- translation.text #=> "Salve mundi!"
46
- ```
47
-
48
- You may want to use the `from` option to specify the language of the
49
- source text, as the following example illustrates. (Single words do not
50
- give Translation API much to work with.)
51
-
52
- ```ruby
53
- require "google/cloud/translate"
54
-
55
- translate = Google::Cloud::Translate.new
56
-
57
- translation = translate.translate "chat", to: "en"
58
-
59
- translation.detected? #=> true
60
- translation.from #=> "en"
61
- translation.text #=> "chat"
62
-
63
- translation = translate.translate "chat", from: "fr", to: "en"
64
-
65
- translation.detected? #=> false
66
- translation.from #=> "fr"
67
- translation.text #=> "cat"
68
- ```
69
-
70
- You can pass multiple texts to {Google::Cloud::Translate::Api#translate}.
71
-
72
- ```ruby
73
- require "google/cloud/translate"
74
-
75
- translate = Google::Cloud::Translate.new
76
-
77
- translations = translate.translate "chien", "chat", from: "fr", to: "en"
78
-
79
- translations.size #=> 2
80
- translations[0].origin #=> "chien"
81
- translations[0].text #=> "dog"
82
- translations[1].origin #=> "chat"
83
- translations[1].text #=> "cat"
84
- ```
85
-
86
- By default, any HTML in your source text will be preserved.
87
-
88
- ```ruby
89
- require "google/cloud/translate"
90
-
91
- translate = Google::Cloud::Translate.new
92
-
93
- translation = translate.translate "<strong>Hello</strong> world!",
94
- to: :la
95
- translation.text #=> "<strong>Salve</strong> mundi!"
96
- ```
97
-
98
- ## Detecting languages
99
-
100
- You can use {Google::Cloud::Translate::Api#detect} to see which language
101
- the Translation API ranks as the most likely source language for a text.
102
- The `confidence` score is a float value between `0` and `1`.
103
-
104
- ```ruby
105
- require "google/cloud/translate"
106
-
107
- translate = Google::Cloud::Translate.new
108
-
109
- detection = translate.detect "chat"
110
-
111
- detection.text #=> "chat"
112
- detection.language #=> "en"
113
- detection.confidence #=> 0.59922177
114
- ```
115
-
116
- You can pass multiple texts to {Google::Cloud::Translate::Api#detect}.
117
-
118
- ```ruby
119
- require "google/cloud/translate"
120
-
121
- translate = Google::Cloud::Translate.new
122
-
123
- detections = translate.detect "chien", "chat"
124
-
125
- detections.size #=> 2
126
- detections[0].text #=> "chien"
127
- detections[0].language #=> "fr"
128
- detections[0].confidence #=> 0.7109375
129
- detections[1].text #=> "chat"
130
- detections[1].language #=> "en"
131
- detections[1].confidence #=> 0.59922177
132
- ```
133
-
134
- ## Listing supported languages
135
-
136
- Translation API adds new languages frequently. You can use
137
- {Google::Cloud::Translate::Api#languages} to query the list of supported
138
- languages.
139
-
140
- ```ruby
141
- require "google/cloud/translate"
142
-
143
- translate = Google::Cloud::Translate.new
144
-
145
- languages = translate.languages
146
-
147
- languages.size #=> 104
148
- languages[0].code #=> "af"
149
- languages[0].name #=> nil
150
- ```
151
-
152
- To receive the names of the supported languages, as well as their [ISO
153
- 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) codes,
154
- provide the code for the language in which you wish to receive the names.
155
-
156
- ```ruby
157
- require "google/cloud/translate"
158
-
159
- translate = Google::Cloud::Translate.new
160
-
161
- languages = translate.languages "en"
162
-
163
- languages.size #=> 104
164
- languages[0].code #=> "af"
165
- languages[0].name #=> "Afrikaans"
166
- ```
167
-
168
- ## Configuring retries and timeout
169
-
170
- You can configure how many times API requests may be automatically
171
- retried. When an API request fails, the response will be inspected to see
172
- if the request meets criteria indicating that it may succeed on retry,
173
- such as `500` and `503` status codes or a specific internal error code
174
- such as `rateLimitExceeded`. If it meets the criteria, the request will be
175
- retried after a delay. If another error occurs, the delay will be
176
- increased before a subsequent attempt, until the `retries` limit is
177
- reached.
178
-
179
- You can also set the request `timeout` value in seconds.
180
-
181
- ```ruby
182
- require "google/cloud/translate"
183
-
184
- translate = Google::Cloud::Translate.new retries: 10, timeout: 120
185
- ```