azure-ai-translation-document-py – skill Tài liệu & Office cho agent AI
SDK Azure AI Document Translation để dịch hàng loạt tài liệu và giữ nguyên định dạng. Dùng để dịch Word, PDF, Excel, PowerPoint và các định dạng tài liệu khác với quy mô lớn.
Cài skill azure-ai-translation-document-py bằng một lệnh
Chọn công cụ bạn đang dùng, copy lệnh và dán vào terminal. Skill sẽ nằm trong thư mục skills của công cụ đó và sẵn sàng dùng ở phiên làm việc tiếp theo.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-translation-document-py-fb796.tgz | tar xz -C ~/.claude/skills
Gọi trong Claude Code: /azure-ai-translation-document-py – rồi mô tả công việc bạn muốn làm.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-translation-document-py-fb796.tgz | tar xz -C ~/.codex/skills
Gọi trong Codex: $azure-ai-translation-document-py – rồi mô tả công việc bạn muốn làm.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-translation-document-py-fb796.tgz | tar xz -C ~/.hermes/skills
Gọi trong Hermes Agent: /azure-ai-translation-document-py – rồi mô tả công việc bạn muốn làm.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/azure-ai-translation-document-py-fb796.tgz | tar xz -C ~/.deepcode/skills
Gọi trong DeepSeek: /azure-ai-translation-document-py – rồi mô tả công việc bạn muốn làm.
Nội dung SKILL.md
Nội dung SKILL.md gốc bằng tiếng Anh.
Azure AI Document Translation SDK for Python
Client library for Azure AI Translator document translation service for batch document translation with format preservation.
Installation
pip install azure-ai-translation-documentEnvironment Variables
AZURE_DOCUMENT_TRANSLATION_ENDPOINT=https://<resource>.cognitiveservices.azure.com
AZURE_DOCUMENT_TRANSLATION_KEY=<your-api-key> # If using API key
# Storage for source and target documents
AZURE_SOURCE_CONTAINER_URL=https://<storage>.blob.core.windows.net/<container>?<sas>
AZURE_TARGET_CONTAINER_URL=https://<storage>.blob.core.windows.net/<container>?<sas>Authentication
API Key
import os
from azure.ai.translation.document import DocumentTranslationClient
from azure.core.credentials import AzureKeyCredential
endpoint = os.environ["AZURE_DOCUMENT_TRANSLATION_ENDPOINT"]
key = os.environ["AZURE_DOCUMENT_TRANSLATION_KEY"]
client = DocumentTranslationClient(endpoint, AzureKeyCredential(key))Entra ID (Recommended)
from azure.ai.translation.document import DocumentTranslationClient
from azure.identity import DefaultAzureCredential
client = DocumentTranslationClient(
endpoint=os.environ["AZURE_DOCUMENT_TRANSLATION_ENDPOINT"],
credential=DefaultAzureCredential()
)Disclosure and cost boundary
Translation sends documents to Azure and writes output to the selected containers. Confirm authorized document subset, destination, region, retention and budget. Keep SAS URLs out of logs, use short-lived least-privilege access and handle each document’s failure separately; overall job completion does not imply all documents succeeded. SDK/single-document methods and language/format support are version-dependent: inspect current package docs before running fragments.
Basic Document Translation
from azure.ai.translation.document import DocumentTranslationInput, TranslationTarget
source_url = os.environ["AZURE_SOURCE_CONTAINER_URL"]
target_url = os.environ["AZURE_TARGET_CONTAINER_URL"]
# Start translation job
poller = client.begin_translation(
inputs=[
DocumentTranslationInput(
source_url=source_url,
targets=[
TranslationTarget(
target_url=target_url,
language="es" # Translate to Spanish
)
]
)
]
)
# Wait for completion
result = poller.result()
print(f"Status: {poller.status()}")
print(f"Documents translated: {poller.details.documents_succeeded_count}")
print(f"Documents failed: {poller.details.documents_failed_count}")Multiple Target Languages
poller = client.begin_translation(
inputs=[
DocumentTranslationInput(
source_url=source_url,
targets=[
TranslationTarget(target_url=target_url_es, language="es"),
TranslationTarget(target_url=target_url_fr, language="fr"),
TranslationTarget(target_url=target_url_de, language="de")
]
)
]
)Translate Single Document
from azure.ai.translation.document import SingleDocumentTranslationClient
single_client = SingleDocumentTranslationClient(endpoint, AzureKeyCredential(key))
with open("document.docx", "rb") as f:
document_content = f.read()
result = single_client.translate(
body=document_content,
target_language="es",
content_type="application/vnd.openxmlformats-officedocument.wordprocessingml.document"
)
# Save translated document
with open("document_es.docx", "wb") as f:
f.write(result)Check Translation Status
# Get all translation operations
operations = client.list_translation_statuses()
for op in operations:
print(f"Operation ID: {op.id}")
print(f"Status: {op.status}")
print(f"Created: {op.created_on}")
print(f"Total documents: {op.documents_total_count}")
print(f"Succeeded: {op.documents_succeeded_count}")
print(f"Failed: {op.documents_failed_count}")List Document Statuses
# Get status of individual documents in a job
operation_id = poller.id
document_statuses = client.list_document_statuses(operation_id)
for doc in document_statuses:
print(f"Document ID: {doc.id}") # Avoid logging SAS-bearing source URLs.
print(f" Status: {doc.status}")
print(f" Translated to: {doc.translated_to}")
if doc.error:
print(f" Error: {doc.error.message}")Cancel Translation
# Cancel a running translation
client.cancel_translation(operation_id)Using Glossary
from azure.ai.translation.document import TranslationGlossary
poller = client.begin_translation(
inputs=[
DocumentTranslationInput(
source_url=source_url,
targets=[
TranslationTarget(
target_url=target_url,
language="es",
glossaries=[
TranslationGlossary(
glossary_url="https://<storage>.blob.core.windows.net/glossary/terms.csv?<sas>",
file_format="csv"
)
]
)
]
)
]
)Supported Document Formats
# Get supported formats
formats = client.get_supported_document_formats()
for fmt in formats:
print(f"Format: {fmt.format}")
print(f" Extensions: {fmt.file_extensions}")
print(f" Content types: {fmt.content_types}")Supported Languages
# Get supported languages
languages = client.get_supported_languages()
for lang in languages:
print(f"Language: {lang.name} ({lang.code})")Async Client
from azure.ai.translation.document.aio import DocumentTranslationClient
from azure.identity.aio import DefaultAzureCredential
async def translate_documents():
async with DocumentTranslationClient(
endpoint=endpoint,
credential=DefaultAzureCredential()
) as client:
poller = await client.begin_translation(inputs=[...])
result = await poller.result()Supported Formats
| Category | Formats |
|----------|---------|
| Documents | DOCX, PDF, PPTX, XLSX, HTML, TXT, RTF |
| Structured | CSV, TSV, JSON, XML |
| Localization | XLIFF, XLF, MHTML |
Storage Requirements
- Source and target containers must be Azure Blob Storage
- Use SAS tokens with appropriate permissions:
- Source: Read, List
- Target: Write, List
Best Practices
1. Use SAS tokens with minimal required permissions
2. Monitor long-running operations with poller.status()
3. Handle document-level errors by iterating document statuses
4. Use glossaries for domain-specific terminology
5. Separate target containers for each language
6. Use async client for multiple concurrent jobs
7. Check supported formats before submitting documents
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Skill liên quan
- markdown-mermaid-writing – Viết tài liệu Markdown khoa học và sơ đồ Mermaid cho quy trình, mối quan hệ, dòng thời…
- markitdown – Chuyển đổi nhiều loại tài liệu và một số URI sang Markdown bằng Microsoft MarkItDown để…
- referrals – Khi người dùng muốn tạo, tối ưu hoặc phân tích chương trình giới thiệu (referral)…
- open-notebook – Tổ chức nghiên cứu với Open Notebook tự lưu trữ, giải pháp thay thế NotebookLM. Hỗ trợ…
- deepread – Dùng khi người dùng yêu cầu đọc sâu một cuốn sách, bài báo, PDF hoặc bộ tài liệu; trích…
- demo-video – Dùng khi người dùng yêu cầu tạo video demo, video hướng dẫn sản phẩm, showcase tính…
- lbo-model – Xây dựng workbook mô hình mua lại có đòn bẩy (LBO) với IRR/MOIC trong Excel.
- dossier – Nghiên cứu thực thể cấp quyết định — tạo hồ sơ kiểm chứng giả thuyết về một công ty, cá…