Tencent Cloud Machine Translation (TMT) SDK for Python providing comprehensive text, file, image, and speech translation capabilities
Document translation supporting multiple formats (PDF, DOCX, PPTX, XLSX, TXT, XML, HTML, Markdown, Properties) with asynchronous processing and progress tracking. File translation operates as a two-step process: submit translation task and retrieve results.
Submits a document for translation and returns a task ID for tracking. Supports both URL-based and direct file upload methods.
def FileTranslate(self, request: models.FileTranslateRequest) -> models.FileTranslateResponse:
"""
Submit a file translation task.
Args:
request: FileTranslateRequest with file and translation parameters
Returns:
FileTranslateResponse with task ID for tracking
Raises:
TencentCloudSDKException: For various error conditions
"""Usage Example:
from tencentcloud.common import credential
from tencentcloud.tmt.v20180321.tmt_client import TmtClient
from tencentcloud.tmt.v20180321 import models
# Initialize client
cred = credential.Credential("SecretId", "SecretKey")
client = TmtClient(cred, "ap-beijing")
# Submit file translation via URL
req = models.FileTranslateRequest()
req.Source = "en"
req.Target = "zh"
req.DocumentType = "pdf"
req.SourceType = 0 # URL source
req.Url = "https://example.com/document.pdf"
req.BasicDocumentType = "pdf"
# Submit translation task
resp = client.FileTranslate(req)
task_id = resp.Data.TaskId
print(f"Translation task submitted: {task_id}")Retrieves translation results using the task ID. Supports both callback and polling methods for result retrieval.
def GetFileTranslate(self, request: models.GetFileTranslateRequest) -> models.GetFileTranslateResponse:
"""
Retrieve file translation results by task ID.
Args:
request: GetFileTranslateRequest with task ID
Returns:
GetFileTranslateResponse with translation status and results
Raises:
TencentCloudSDKException: For various error conditions
"""Usage Example:
import time
# Check translation status and retrieve results
def wait_for_translation(client, task_id, max_wait_time=300):
"""Wait for translation completion and return results."""
start_time = time.time()
while time.time() - start_time < max_wait_time:
req = models.GetFileTranslateRequest()
req.TaskId = task_id
resp = client.GetFileTranslate(req)
if resp.Data.Status == "success":
return resp.Data.Url # URL to download translated file
elif resp.Data.Status == "failed":
raise Exception(f"Translation failed: {resp.Data.ErrorMsg}")
elif resp.Data.Status in ["waiting", "processing"]:
print(f"Translation status: {resp.Data.Status}")
time.sleep(5) # Wait 5 seconds before next check
raise Exception("Translation timeout")
# Use the function
try:
result_url = wait_for_translation(client, task_id)
print(f"Translation completed: {result_url}")
except Exception as e:
print(f"Translation error: {e}")class FileTranslateRequest:
"""
Request parameters for file translation.
Attributes:
Source (str): Source language code
Target (str): Target language code
DocumentType (str): File format (pdf, docx, pptx, xlsx, txt, xml, html, markdown, properties)
SourceType (int): Data source type (0: URL, 1: file data)
Url (str): File URL when SourceType=0
Data (str): Base64 encoded file data when SourceType=1
BasicDocumentType (str): Basic document type for processing
CallbackUrl (str): Optional callback URL for result notification
ProjectId (int): Project ID (default: 0)
"""class FileTranslateResponse:
"""
Response from file translation submission.
Attributes:
Data (Task): File translation task data containing TaskId
RequestId (str): Unique request identifier
"""class GetFileTranslateRequest:
"""
Request parameters for retrieving file translation results.
Attributes:
TaskId (str): Task ID returned from FileTranslate
"""class GetFileTranslateResponse:
"""
Response from file translation result retrieval.
Attributes:
Data (GetFileTranslateData): Translation result data
RequestId (str): Unique request identifier
"""class Task:
"""
File translation task data.
Attributes:
TaskId (str): Task ID for tracking translation status
"""class GetFileTranslateData:
"""
File translation result data.
Attributes:
TaskId (str): Task ID for this translation
Status (str): Task status (init, wait, success, fail)
FileData (str): Translation result data when successful
Message (str): Status message
Progress (int): Translation progress (0-100)
UsedAmount (int): Characters consumed for billing
"""File translation uses an asynchronous workflow:
FileTranslate() to submit file for translationGetFileTranslate() to check statusPolling Method:
GetFileTranslate() with task IDCallback Method:
Translation task data is retained for 7 days after completion. Ensure you download results within this timeframe as data will be permanently deleted afterward.
Common error scenarios for file translation:
Example error handling:
try:
resp = client.FileTranslate(req)
task_id = resp.Data.TaskId
except TencentCloudSDKException as e:
if e.code == "FAILEDOPERATION_SUBMISSIONLIMITREACHED":
print("Daily translation limit reached")
elif e.code == "FAILEDOPERATION_TOOMANYWAITPROCESS":
print("Too many pending tasks, try again later")
else:
print(f"Translation error: {e.code} - {e.message}")Install with Tessl CLI
npx tessl i tessl/pypi-tencentcloud-sdk-python-tmt