Google Cloud Translate API client library for translating text between thousands of language pairs with support for adaptive MT, AutoML, and glossaries
—
Translation glossaries provide consistent terminology translation for domain-specific content. Glossaries contain term mappings that ensure specific words or phrases are translated consistently according to user preferences, particularly useful for technical documentation, brand names, and specialized terminology.
from google.cloud import translate_v3Create, update, and manage translation glossaries with custom terminology mappings.
def create_glossary(
self,
request=None,
*,
parent=None,
glossary=None,
retry=None,
timeout=None,
metadata=()
):
"""
Creates a glossary and returns the long-running operation.
Args:
request (CreateGlossaryRequest): The request object
parent (str): Project/location resource name
glossary (Glossary): Glossary configuration
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
Operation: Long-running operation for glossary creation
"""
def update_glossary(
self,
request=None,
*,
glossary=None,
update_mask=None,
retry=None,
timeout=None,
metadata=()
):
"""
Updates a glossary and returns the long-running operation.
Args:
request (UpdateGlossaryRequest): The request object
glossary (Glossary): Updated glossary configuration
update_mask (FieldMask): Fields to update
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
Operation: Long-running operation for glossary update
"""
def list_glossaries(
self,
request=None,
*,
parent=None,
page_size=None,
page_token=None,
filter=None,
retry=None,
timeout=None,
metadata=()
):
"""
Lists glossaries in a project.
Args:
request (ListGlossariesRequest): The request object
parent (str): Project/location resource name
page_size (int): Maximum number of glossaries to return
page_token (str): Token for pagination
filter (str): Filter expression for glossaries
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
ListGlossariesResponse: Paginated list of glossaries
"""
def get_glossary(
self,
request=None,
*,
name=None,
retry=None,
timeout=None,
metadata=()
):
"""
Gets a glossary.
Args:
request (GetGlossaryRequest): The request object
name (str): Glossary resource name
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
Glossary: Glossary resource
"""
def delete_glossary(
self,
request=None,
*,
name=None,
retry=None,
timeout=None,
metadata=()
):
"""
Deletes a glossary, or cancels glossary construction if in progress.
Args:
request (DeleteGlossaryRequest): The request object
name (str): Glossary resource name
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
Operation: Long-running operation for glossary deletion
"""Manage individual glossary entries for fine-grained terminology control.
def create_glossary_entry(
self,
request=None,
*,
parent=None,
glossary_entry=None,
retry=None,
timeout=None,
metadata=()
):
"""
Creates a glossary entry.
Args:
request (CreateGlossaryEntryRequest): The request object
parent (str): Glossary resource name
glossary_entry (GlossaryEntry): Entry configuration
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
GlossaryEntry: Created glossary entry
"""
def update_glossary_entry(
self,
request=None,
*,
glossary_entry=None,
retry=None,
timeout=None,
metadata=()
):
"""
Updates a glossary entry.
Args:
request (UpdateGlossaryEntryRequest): The request object
glossary_entry (GlossaryEntry): Updated entry configuration
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
GlossaryEntry: Updated glossary entry
"""
def list_glossary_entries(
self,
request=None,
*,
parent=None,
page_size=None,
page_token=None,
retry=None,
timeout=None,
metadata=()
):
"""
List the entries for the glossary.
Args:
request (ListGlossaryEntriesRequest): The request object
parent (str): Glossary resource name
page_size (int): Maximum number of entries to return
page_token (str): Token for pagination
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
ListGlossaryEntriesResponse: Paginated list of glossary entries
"""
def get_glossary_entry(
self,
request=None,
*,
name=None,
retry=None,
timeout=None,
metadata=()
):
"""
Gets a single glossary entry by the given id.
Args:
request (GetGlossaryEntryRequest): The request object
name (str): Glossary entry resource name
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
GlossaryEntry: Glossary entry resource
"""
def delete_glossary_entry(
self,
request=None,
*,
name=None,
retry=None,
timeout=None,
metadata=()
):
"""
Deletes a single entry from the glossary.
Args:
request (DeleteGlossaryEntryRequest): The request object
name (str): Glossary entry resource name
retry: Retry configuration
timeout (float): Request timeout in seconds
metadata: Additional metadata
Returns:
None
"""from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
parent = "projects/my-project/locations/us-central1"
glossary = {
"name": f"{parent}/glossaries/my-glossary",
"language_pair": {
"source_language_code": "en",
"target_language_code": "es",
},
"input_config": {
"gcs_source": {
"input_uri": "gs://my-bucket/glossary.csv"
},
"mime_type": "text/csv"
}
}
operation = client.create_glossary(
request={
"parent": parent,
"glossary": glossary,
}
)
print(f"Operation name: {operation.name}")
# Wait for operation to complete
result = operation.result(timeout=300)
print(f"Created glossary: {result.name}")
print(f"Entry count: {result.entry_count}")from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
parent = "projects/my-project/locations/us-central1"
glossary = {
"name": f"{parent}/glossaries/multi-language-glossary",
"language_codes_set": {
"language_codes": ["en", "es", "fr"]
},
"input_config": {
"gcs_source": {
"input_uri": "gs://my-bucket/multilingual-glossary.tsv"
},
"mime_type": "text/tab-separated-values"
}
}
operation = client.create_glossary(
request={
"parent": parent,
"glossary": glossary,
}
)
result = operation.result(timeout=300)
print(f"Created multilingual glossary: {result.name}")from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
parent = "projects/my-project/locations/us-central1"
glossary_name = f"{parent}/glossaries/my-glossary"
glossary_config = {
"glossary": glossary_name
}
response = client.translate_text(
request={
"parent": parent,
"contents": ["Hello world", "Machine learning"],
"mime_type": "text/plain",
"source_language_code": "en",
"target_language_code": "es",
"glossary_config": glossary_config,
}
)
for translation in response.translations:
print(f"Translated with glossary: {translation.translated_text}")from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
glossary_name = "projects/my-project/locations/us-central1/glossaries/my-glossary"
# Create a new glossary entry
glossary_entry = {
"terms_set": {
"terms": {
"en": "machine learning",
"es": "aprendizaje automático"
}
}
}
entry = client.create_glossary_entry(
request={
"parent": glossary_name,
"glossary_entry": glossary_entry,
}
)
print(f"Created entry: {entry.name}")
# List all entries
entries_response = client.list_glossary_entries(
request={
"parent": glossary_name,
"page_size": 10,
}
)
for entry in entries_response.glossary_entries:
print(f"Entry: {entry.name}")
if hasattr(entry, 'terms_set'):
for term in entry.terms_set.terms:
print(f" {term}: {entry.terms_set.terms[term]}")
# Update an entry
entry.terms_set.terms["fr"] = "apprentissage automatique"
updated_entry = client.update_glossary_entry(
request={
"glossary_entry": entry,
}
)
print(f"Updated entry with French term: {updated_entry.terms_set.terms['fr']}")from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
parent = "projects/my-project/locations/us-central1"
# List all glossaries
response = client.list_glossaries(
request={
"parent": parent,
"page_size": 10,
}
)
for glossary in response.glossaries:
print(f"Glossary: {glossary.name}")
print(f"Display name: {glossary.display_name}")
print(f"Entry count: {glossary.entry_count}")
if hasattr(glossary, 'language_pair'):
print(f"Language pair: {glossary.language_pair.source_language_code} -> {glossary.language_pair.target_language_code}")
elif hasattr(glossary, 'language_codes_set'):
print(f"Language codes: {', '.join(glossary.language_codes_set.language_codes)}")
print(f"Submit time: {glossary.submit_time}")
print("---")
# Get specific glossary
glossary_name = f"{parent}/glossaries/my-glossary"
glossary = client.get_glossary(
request={"name": glossary_name}
)
print(f"Retrieved glossary: {glossary.display_name}")
print(f"Input URI: {glossary.input_config.gcs_source.input_uri}")from google.cloud import translate_v3
from google.protobuf import field_mask_pb2
client = translate_v3.TranslationServiceClient()
glossary_name = "projects/my-project/locations/us-central1/glossaries/my-glossary"
# Get existing glossary
glossary = client.get_glossary(
request={"name": glossary_name}
)
# Update display name
glossary.display_name = "Updated Glossary Name"
# Create update mask
update_mask = field_mask_pb2.FieldMask()
update_mask.paths.append("display_name")
# Update glossary
operation = client.update_glossary(
request={
"glossary": glossary,
"update_mask": update_mask,
}
)
result = operation.result(timeout=300)
print(f"Updated glossary: {result.display_name}")from google.cloud import translate_v3
client = translate_v3.TranslationServiceClient()
glossary_name = "projects/my-project/locations/us-central1/glossaries/my-glossary"
operation = client.delete_glossary(
request={"name": glossary_name}
)
result = operation.result(timeout=300)
print(f"Deleted glossary: {result.name}")
print(f"Submit time: {result.submit_time}")
print(f"End time: {result.end_time}")Install with Tessl CLI
npx tessl i tessl/pypi-google-cloud-translate