[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G1NJ1BC4SWQY6TZ5XFVWD9":3,"skill-same:01M6G1NJ1BC4SWQY6TZ5XFVWD9":56},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":13,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M6G1NJ1BC4SWQY6TZ5XFVWD9","azure-ai-translation-document-py",null,"reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdata\u002Fazure-ai-translation-document-py\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[23,24,25,26,27,28],"azure ai","azure","azure ai translation document py","document","translation","ai translation","2026-11-10 10:12:30",false,"---\nname: azure-ai-translation-document-py\ndescription: \"|\"\n  Azure AI Document Translation SDK for batch translation of documents with format preservation. Use for translating Word, PDF, Excel, PowerPoint, and other document formats at scale.\n  Triggers: \"document translation\", \"batch translation\", \"translate documents\", \"DocumentTranslationClient\".\npackage: azure-ai-translation-document\nrisk: unknown\nsource: community\n---\n\n# Azure AI Document Translation SDK for Python\n\nClient library for Azure AI Translator document translation service for batch document translation with format preservation.\n\n## Installation\n\n```bash\npip install azure-ai-translation-document\n```\n\n## Environment Variables\n\n```bash\nAZURE_DOCUMENT_TRANSLATION_ENDPOINT=https:\u002F\u002F\u003Cresource>.cognitiveservices.azure.com\nAZURE_DOCUMENT_TRANSLATION_KEY=\u003Cyour-api-key>  # If using API key\n\n# Storage for source and target documents\nAZURE_SOURCE_CONTAINER_URL=https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002F\u003Ccontainer>?\u003Csas>\nAZURE_TARGET_CONTAINER_URL=https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002F\u003Ccontainer>?\u003Csas>\n```\n\n## Authentication\n\n### API Key\n\n```python\nimport os\nfrom azure.ai.translation.document import DocumentTranslationClient\nfrom azure.core.credentials import AzureKeyCredential\n\nendpoint = os.environ[\"AZURE_DOCUMENT_TRANSLATION_ENDPOINT\"]\nkey = os.environ[\"AZURE_DOCUMENT_TRANSLATION_KEY\"]\n\nclient = DocumentTranslationClient(endpoint, AzureKeyCredential(key))\n```\n\n### Entra ID (Recommended)\n\n```python\nfrom azure.ai.translation.document import DocumentTranslationClient\nfrom azure.identity import DefaultAzureCredential\n\nclient = DocumentTranslationClient(\n    endpoint=os.environ[\"AZURE_DOCUMENT_TRANSLATION_ENDPOINT\"],\n    credential=DefaultAzureCredential()\n)\n```\n\n## Basic Document Translation\n\n```python\nfrom azure.ai.translation.document import DocumentTranslationInput, TranslationTarget\n\nsource_url = os.environ[\"AZURE_SOURCE_CONTAINER_URL\"]\ntarget_url = os.environ[\"AZURE_TARGET_CONTAINER_URL\"]\n\n# Start translation job\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(\n                    target_url=target_url,\n                    language=\"es\"  # Translate to Spanish\n                )\n            ]\n        )\n    ]\n)\n\n# Wait for completion\nresult = poller.result()\n\nprint(f\"Status: {poller.status()}\")\nprint(f\"Documents translated: {poller.details.documents_succeeded_count}\")\nprint(f\"Documents failed: {poller.details.documents_failed_count}\")\n```\n\n## Multiple Target Languages\n\n```python\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(target_url=target_url_es, language=\"es\"),\n                TranslationTarget(target_url=target_url_fr, language=\"fr\"),\n                TranslationTarget(target_url=target_url_de, language=\"de\")\n            ]\n        )\n    ]\n)\n```\n\n## Translate Single Document\n\n```python\nfrom azure.ai.translation.document import SingleDocumentTranslationClient\n\nsingle_client = SingleDocumentTranslationClient(endpoint, AzureKeyCredential(key))\n\nwith open(\"document.docx\", \"rb\") as f:\n    document_content = f.read()\n\nresult = single_client.translate(\n    body=document_content,\n    target_language=\"es\",\n    content_type=\"application\u002Fvnd.openxmlformats-officedocument.wordprocessingml.document\"\n)\n\n# Save translated document\nwith open(\"document_es.docx\", \"wb\") as f:\n    f.write(result)\n```\n\n## Check Translation Status\n\n```python\n# Get all translation operations\noperations = client.list_translation_statuses()\n\nfor op in operations:\n    print(f\"Operation ID: {op.id}\")\n    print(f\"Status: {op.status}\")\n    print(f\"Created: {op.created_on}\")\n    print(f\"Total documents: {op.documents_total_count}\")\n    print(f\"Succeeded: {op.documents_succeeded_count}\")\n    print(f\"Failed: {op.documents_failed_count}\")\n```\n\n## List Document Statuses\n\n```python\n# Get status of individual documents in a job\noperation_id = poller.id\ndocument_statuses = client.list_document_statuses(operation_id)\n\nfor doc in document_statuses:\n    print(f\"Document: {doc.source_document_url}\")\n    print(f\"  Status: {doc.status}\")\n    print(f\"  Translated to: {doc.translated_to}\")\n    if doc.error:\n        print(f\"  Error: {doc.error.message}\")\n```\n\n## Cancel Translation\n\n```python\n# Cancel a running translation\nclient.cancel_translation(operation_id)\n```\n\n## Using Glossary\n\n```python\nfrom azure.ai.translation.document import TranslationGlossary\n\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(\n                    target_url=target_url,\n                    language=\"es\",\n                    glossaries=[\n                        TranslationGlossary(\n                            glossary_url=\"https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002Fglossary\u002Fterms.csv?\u003Csas>\",\n                            file_format=\"csv\"\n                        )\n                    ]\n                )\n            ]\n        )\n    ]\n)\n```\n\n## Supported Document Formats\n\n```python\n# Get supported formats\nformats = client.get_supported_document_formats()\n\nfor fmt in formats:\n    print(f\"Format: {fmt.format}\")\n    print(f\"  Extensions: {fmt.file_extensions}\")\n    print(f\"  Content types: {fmt.content_types}\")\n```\n\n## Supported Languages\n\n```python\n# Get supported languages\nlanguages = client.get_supported_languages()\n\nfor lang in languages:\n    print(f\"Language: {lang.name} ({lang.code})\")\n```\n\n## Async Client\n\n```python\nfrom azure.ai.translation.document.aio import DocumentTranslationClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def translate_documents():\n    async with DocumentTranslationClient(\n        endpoint=endpoint,\n        credential=DefaultAzureCredential()\n    ) as client:\n        poller = await client.begin_translation(inputs=[...])\n        result = await poller.result()\n```\n\n## Supported Formats\n\n| Category | Formats |\n|----------|---------|\n| Documents | DOCX, PDF, PPTX, XLSX, HTML, TXT, RTF |\n| Structured | CSV, TSV, JSON, XML |\n| Localization | XLIFF, XLF, MHTML |\n\n## Storage Requirements\n\n- Source and target containers must be Azure Blob Storage\n- Use SAS tokens with appropriate permissions:\n  - Source: Read, List\n  - Target: Write, List\n\n## Best Practices\n\n1. **Use SAS tokens** with minimal required permissions\n2. **Monitor long-running operations** with `poller.status()`\n3. **Handle document-level errors** by iterating document statuses\n4. **Use glossaries** for domain-specific terminology\n5. **Separate target containers** for each language\n6. **Use async client** for multiple concurrent jobs\n7. **Check supported formats** before submitting documents\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure AI Document Translation SDK for Python\n\nClient library for Azure AI Translator document translation service for batch document translation with format preservation.\n\n## Installation\n\n```bash\npip install azure-ai-translation-document\n```\n\n## Environment Variables\n\n```bash\nAZURE_DOCUMENT_TRANSLATION_ENDPOINT=https:\u002F\u002F\u003Cresource>.cognitiveservices.azure.com\nAZURE_DOCUMENT_TRANSLATION_KEY=\u003Cyour-api-key>  # If using API key\n\n# Storage for source and target documents\nAZURE_SOURCE_CONTAINER_URL=https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002F\u003Ccontainer>?\u003Csas>\nAZURE_TARGET_CONTAINER_URL=https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002F\u003Ccontainer>?\u003Csas>\n```\n\n## Authentication\n\n### API Key\n\n```python\nimport os\nfrom azure.ai.translation.document import DocumentTranslationClient\nfrom azure.core.credentials import AzureKeyCredential\n\nendpoint = os.environ[\"AZURE_DOCUMENT_TRANSLATION_ENDPOINT\"]\nkey = os.environ[\"AZURE_DOCUMENT_TRANSLATION_KEY\"]\n\nclient = DocumentTranslationClient(endpoint, AzureKeyCredential(key))\n```\n\n### Entra ID (Recommended)\n\n```python\nfrom azure.ai.translation.document import DocumentTranslationClient\nfrom azure.identity import DefaultAzureCredential\n\nclient = DocumentTranslationClient(\n    endpoint=os.environ[\"AZURE_DOCUMENT_TRANSLATION_ENDPOINT\"],\n    credential=DefaultAzureCredential()\n)\n```\n\n## Basic Document Translation\n\n```python\nfrom azure.ai.translation.document import DocumentTranslationInput, TranslationTarget\n\nsource_url = os.environ[\"AZURE_SOURCE_CONTAINER_URL\"]\ntarget_url = os.environ[\"AZURE_TARGET_CONTAINER_URL\"]\n\n# Start translation job\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(\n                    target_url=target_url,\n                    language=\"es\"  # Translate to Spanish\n                )\n            ]\n        )\n    ]\n)\n\n# Wait for completion\nresult = poller.result()\n\nprint(f\"Status: {poller.status()}\")\nprint(f\"Documents translated: {poller.details.documents_succeeded_count}\")\nprint(f\"Documents failed: {poller.details.documents_failed_count}\")\n```\n\n## Multiple Target Languages\n\n```python\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(target_url=target_url_es, language=\"es\"),\n                TranslationTarget(target_url=target_url_fr, language=\"fr\"),\n                TranslationTarget(target_url=target_url_de, language=\"de\")\n            ]\n        )\n    ]\n)\n```\n\n## Translate Single Document\n\n```python\nfrom azure.ai.translation.document import SingleDocumentTranslationClient\n\nsingle_client = SingleDocumentTranslationClient(endpoint, AzureKeyCredential(key))\n\nwith open(\"document.docx\", \"rb\") as f:\n    document_content = f.read()\n\nresult = single_client.translate(\n    body=document_content,\n    target_language=\"es\",\n    content_type=\"application\u002Fvnd.openxmlformats-officedocument.wordprocessingml.document\"\n)\n\n# Save translated document\nwith open(\"document_es.docx\", \"wb\") as f:\n    f.write(result)\n```\n\n## Check Translation Status\n\n```python\n# Get all translation operations\noperations = client.list_translation_statuses()\n\nfor op in operations:\n    print(f\"Operation ID: {op.id}\")\n    print(f\"Status: {op.status}\")\n    print(f\"Created: {op.created_on}\")\n    print(f\"Total documents: {op.documents_total_count}\")\n    print(f\"Succeeded: {op.documents_succeeded_count}\")\n    print(f\"Failed: {op.documents_failed_count}\")\n```\n\n## List Document Statuses\n\n```python\n# Get status of individual documents in a job\noperation_id = poller.id\ndocument_statuses = client.list_document_statuses(operation_id)\n\nfor doc in document_statuses:\n    print(f\"Document: {doc.source_document_url}\")\n    print(f\"  Status: {doc.status}\")\n    print(f\"  Translated to: {doc.translated_to}\")\n    if doc.error:\n        print(f\"  Error: {doc.error.message}\")\n```\n\n## Cancel Translation\n\n```python\n# Cancel a running translation\nclient.cancel_translation(operation_id)\n```\n\n## Using Glossary\n\n```python\nfrom azure.ai.translation.document import TranslationGlossary\n\npoller = client.begin_translation(\n    inputs=[\n        DocumentTranslationInput(\n            source_url=source_url,\n            targets=[\n                TranslationTarget(\n                    target_url=target_url,\n                    language=\"es\",\n                    glossaries=[\n                        TranslationGlossary(\n                            glossary_url=\"https:\u002F\u002F\u003Cstorage>.blob.core.windows.net\u002Fglossary\u002Fterms.csv?\u003Csas>\",\n                            file_format=\"csv\"\n                        )\n                    ]\n                )\n            ]\n        )\n    ]\n)\n```\n\n## Supported Document Formats\n\n```python\n# Get supported formats\nformats = client.get_supported_document_formats()\n\nfor fmt in formats:\n    print(f\"Format: {fmt.format}\")\n    print(f\"  Extensions: {fmt.file_extensions}\")\n    print(f\"  Content types: {fmt.content_types}\")\n```\n\n## Supported Languages\n\n```python\n# Get supported languages\nlanguages = client.get_supported_languages()\n\nfor lang in languages:\n    print(f\"Language: {lang.name} ({lang.code})\")\n```\n\n## Async Client\n\n```python\nfrom azure.ai.translation.document.aio import DocumentTranslationClient\nfrom azure.identity.aio import DefaultAzureCredential\n\nasync def translate_documents():\n    async with DocumentTranslationClient(\n        endpoint=endpoint,\n        credential=DefaultAzureCredential()\n    ) as client:\n        poller = await client.begin_translation(inputs=[...])\n        result = await poller.result()\n```\n\n## Supported Formats\n\n| Category | Formats |\n|----------|---------|\n| Documents | DOCX, PDF, PPTX, XLSX, HTML, TXT, RTF |\n| Structured | CSV, TSV, JSON, XML |\n| Localization | XLIFF, XLF, MHTML |\n\n## Storage Requirements\n\n- Source and target containers must be Azure Blob Storage\n- Use SAS tokens with appropriate permissions:\n  - Source: Read, List\n  - Target: Write, List\n\n## Best Practices\n\n1. **Use SAS tokens** with minimal required permissions\n2. **Monitor long-running operations** with `poller.status()`\n3. **Handle document-level errors** by iterating document statuses\n4. **Use glossaries** for domain-specific terminology\n5. **Separate target containers** for each language\n6. **Use async client** for multiple concurrent jobs\n7. **Check supported formats** before submitting documents\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{},"master","dff58085da947e81e8418c922055644bf0082b1b","skills\u002Fdata\u002Fazure-ai-translation-document-py","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":7,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add reikiplanet\u002Fdaoskills --skill azure-ai-translation-document-py",{"tool":48,"command":49},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill azure-ai-translation-document-py",{"tool":51,"command":52},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill azure-ai-translation-document-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdata\u002Fazure-ai-translation-document-py\u002FSKILL.md",true,[],[57,84,96,111,131,154],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":29},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":29},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[91,92,82,93,94,70,72,73,74,67,95,68],"ar","vr ar","interaction","requirements","performance",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":29},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[98,103,104,105,106,107,70,108,74,109,110,67],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":29},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[118,119,120,121,122,70,123,124,125,126,108,127,128,129,130],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":29},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[138,139,140,141,142,143,144,145,70,74,67,146,68,147,148,149,150,151,152,153],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":29},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[161,162,163,164,165,166,167,168,151,108,169,170,171,70,172,173,174,148,175,176],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]