def sample_list_all_submitted_jobs(): import os # [START list_all_jobs] from azure.core.credentials import AzureKeyCredential from azure.ai.translation.document import ( DocumentTranslationClient, ) endpoint = os.environ["AZURE_DOCUMENT_TRANSLATION_ENDPOINT"] key = os.environ["AZURE_DOCUMENT_TRANSLATION_KEY"] client = DocumentTranslationClient(endpoint, AzureKeyCredential(key)) translation_jobs = client.list_submitted_jobs( ) # type: ItemPaged[JobStatusResult] for job in translation_jobs: if job.status == "Running": job = client.wait_until_done(job.id) print("Job ID: {}".format(job.id)) print("Job status: {}".format(job.status)) print("Job created on: {}".format(job.created_on)) print("Job last updated on: {}".format(job.last_updated_on)) print("Total number of translations on documents: {}".format( job.documents_total_count)) print("Total number of characters charged: {}".format( job.total_characters_charged)) print("\nOf total documents...") print("{} failed".format(job.documents_failed_count)) print("{} succeeded".format(job.documents_succeeded_count)) print("{} cancelled\n".format(job.documents_cancelled_count))
def sample_translation_with_glossaries(): import os from azure.core.credentials import AzureKeyCredential from azure.ai.translation.document import (DocumentTranslationClient, DocumentTranslationInput, TranslationTarget, TranslationGlossary) endpoint = os.environ["AZURE_DOCUMENT_TRANSLATION_ENDPOINT"] key = os.environ["AZURE_DOCUMENT_TRANSLATION_KEY"] source_container_url = os.environ["AZURE_SOURCE_CONTAINER_URL"] target_container_url = os.environ["AZURE_TARGET_CONTAINER_URL"] glossary_url = os.environ["AZURE_TRANSLATION_GLOSSARY_URL"] client = DocumentTranslationClient(endpoint, AzureKeyCredential(key)) inputs = DocumentTranslationInput( source_url=source_container_url, targets=[ TranslationTarget(target_url=target_container_url, language_code="es", glossaries=[ TranslationGlossary( glossary_url=glossary_url, file_format="TSV") ]) ]) job = client.create_translation_job(inputs=[inputs ]) # type: JobStatusResult job_result = client.wait_until_done(job.id) # type: JobStatusResult print("Job status: {}".format(job_result.status)) print("Job created on: {}".format(job_result.created_on)) print("Job last updated on: {}".format(job_result.last_updated_on)) print("Total number of translations on documents: {}".format( job_result.documents_total_count)) print("\nOf total documents...") print("{} failed".format(job_result.documents_failed_count)) print("{} succeeded".format(job_result.documents_succeeded_count)) doc_results = client.list_all_document_statuses( job_result.id) # type: ItemPaged[DocumentStatusResult] for document in doc_results: print("Document ID: {}".format(document.id)) print("Document status: {}".format(document.status)) if document.status == "Succeeded": print("Source document location: {}".format( document.source_document_url)) print("Translated document location: {}".format( document.translated_document_url)) print("Translated to language: {}\n".format(document.translate_to)) else: print("Error Code: {}, Message: {}\n".format( document.error.code, document.error.message))
def sample_translation_with_azure_blob(self): translation_client = DocumentTranslationClient( self.endpoint, AzureKeyCredential(self.key)) blob_service_client = BlobServiceClient(self.storage_endpoint, credential=self.storage_key) source_container = self.create_container( blob_service_client, container_name=self.storage_source_container_name or "translation-source-container", ) target_container = self.create_container( blob_service_client, container_name=self.storage_target_container_name or "translation-target-container") if self.document_name: with open(self.document_name, "rb") as doc: source_container.upload_blob(self.document_name, doc) else: self.document_name = "example_document.txt" source_container.upload_blob( name=self.document_name, data= b"This is an example translation with the document translation client library" ) print("Uploaded document {} to storage container {}".format( self.document_name, source_container.container_name)) source_container_sas_url = self.generate_sas_url(source_container, permissions="rl") target_container_sas_url = self.generate_sas_url(target_container, permissions="wl") translation_inputs = [ DocumentTranslationInput( source_url=source_container_sas_url, targets=[ TranslationTarget(target_url=target_container_sas_url, language_code="fr") ]) ] job = translation_client.create_translation_job(translation_inputs) print("Created translation job with ID: {}".format(job.id)) print("Waiting until job completes...") job_result = translation_client.wait_until_done(job.id) print("Job status: {}".format(job_result.status)) doc_results = translation_client.list_all_document_statuses( job_result.id) print("\nDocument results:") for document in doc_results: print("Document ID: {}".format(document.id)) print("Document status: {}".format(document.status)) if document.status == "Succeeded": print("Source document location: {}".format( document.source_document_url)) print("Translated document location: {}".format( document.translated_document_url)) print("Translated to language: {}\n".format( document.translate_to)) blob_client = BlobClient.from_blob_url( document.translated_document_url, credential=self.storage_key) with open("translated_" + self.document_name, "wb") as my_blob: download_stream = blob_client.download_blob() my_blob.write(download_stream.readall()) print("Downloaded {} locally".format("translated_" + self.document_name)) else: print("\nThere was a problem translating your document.") print("Document Error Code: {}, Message: {}\n".format( document.error.code, document.error.message))