-
Notifications
You must be signed in to change notification settings - Fork 6.5k
/
Copy pathtranslate_v3beta1_translate_document.py
68 lines (54 loc) · 2.13 KB
/
translate_v3beta1_translate_document.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# [START translate_v3beta1_translate_document]
from google.cloud import translate_v3beta1 as translate
def translate_document(
project_id: str,
file_path: str,
) -> translate.TranslationServiceClient:
"""Translates a document.
Args:
project_id: The GCP project ID.
file_path: The path to the file to be translated.
Returns:
The translated document.
"""
client = translate.TranslationServiceClient()
location = "us-central1"
parent = f"projects/{project_id}/locations/{location}"
# Supported file types: https://cloud.google.com/translate/docs/supported-formats
with open(file_path, "rb") as document:
document_content = document.read()
document_input_config = {
"content": document_content,
"mime_type": "application/pdf",
}
response = client.translate_document(
request={
"parent": parent,
"target_language_code": "fr-FR",
"document_input_config": document_input_config,
}
)
# To output the translated document, uncomment the code below.
# f = open('/tmp/output', 'wb')
# f.write(response.document_translation.byte_stream_outputs[0])
# f.close()
# If not provided in the TranslationRequest, the translated file will only be returned through a byte-stream
# and its output mime type will be the same as the input file's mime type
print(
f"Response: Detected Language Code - {response.document_translation.detected_language_code}"
)
return response
# [END translate_v3beta1_translate_document]