[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D816HS030D4RNPVMDVPAPJ":3,"skill-same:01M6D816HS030D4RNPVMDVPAPJ":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":36,"updatedAt":37,"install":38,"resources":51},"01M6D816HS030D4RNPVMDVPAPJ","visa-doc-translate",null,"将签证申请文件（图片）翻译成英文，并创建包含原文和译文的双语PDF","oabdelmaksoud\u002FSuperClaw","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D5CW1RHNSKCJR85GJACBFT",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fdocs\u002Fzh-CN\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[],[19,20,21,22,23],"translate","doc","visa doc translate","image","翻译","2026-11-10 10:12:30",false,"---\nname: visa-doc-translate\ndescription: 将签证申请文件（图片）翻译成英文，并创建包含原文和译文的双语PDF\n---\n\n您正在协助翻译用于签证申请的签证申请文件。\n\n## 说明\n\n当用户提供图像文件路径时，**自动**执行以下步骤，**无需**请求确认：\n\n1. **图像转换**：如果文件是 HEIC 格式，使用 `sips -s format png \u003Cinput> --out \u003Coutput>` 将其转换为 PNG\n\n2. **图像旋转**：\n   * 检查 EXIF 方向数据\n   * 根据 EXIF 数据自动旋转图像\n   * 如果 EXIF 方向是 6，则逆时针旋转 90 度\n   * 根据需要应用额外旋转（如果文档看起来上下颠倒，则测试 180 度）\n\n3. **OCR 文本提取**：\n   * 自动尝试多种 OCR 方法：\n     * macOS Vision 框架（macOS 首选）\n     * EasyOCR（跨平台，无需 tesseract）\n     * Tesseract OCR（如果可用）\n   * 从文档中提取所有文本信息\n   * 识别文档类型（存款证明、在职证明、退休证明等）\n\n4. **翻译**：\n   * 专业地将所有文本内容翻译成英文\n   * 保持原始文档的结构和格式\n   * 使用适合签证申请的专业术语\n   * 保留专有名词的原始语言，并在括号内附上英文\n   * 对于中文姓名，使用拼音格式（例如，WU Zhengye）\n   * 准确保留所有数字、日期和金额\n\n5. **PDF 生成**：\n   * 使用 PIL 和 reportlab 库创建 Python 脚本\n   * 第 1 页：显示旋转后的原始图像，居中并缩放到适合 A4 页面\n   * 第 2 页：以适当格式显示英文翻译：\n     * 标题居中并加粗\n     * 内容左对齐，间距适当\n     * 适合官方文件的专业布局\n   * 在底部添加注释：\"This is a certified English translation of the original document\"\n   * 执行脚本以生成 PDF\n\n6. **输出**：在同一目录中创建名为 `\u003Coriginal_filename>_Translated.pdf` 的 PDF 文件\n\n## 支持的文档\n\n* 银行存款证明 (存款证明)\n* 收入证明 (收入证明)\n* 在职证明 (在职证明)\n* 退休证明 (退休证明)\n* 房产证明 (房产证明)\n* 营业执照 (营业执照)\n* 身份证和护照\n* 其他官方文件\n\n## 技术实现\n\n### OCR 方法（按顺序尝试）\n\n1. **macOS Vision 框架**（仅限 macOS）：\n   ```python\n   import Vision\n   from Foundation import NSURL\n   ```\n\n2. **EasyOCR**（跨平台）：\n   ```bash\n   pip install easyocr\n   ```\n\n3. **Tesseract OCR**（如果可用）：\n   ```bash\n   brew install tesseract tesseract-lang\n   pip install pytesseract\n   ```\n\n### 必需的 Python 库\n\n```bash\npip install pillow reportlab\n```\n\n对于 macOS Vision 框架：\n\n```bash\npip install pyobjc-framework-Vision pyobjc-framework-Quartz\n```\n\n## 重要指南\n\n* **请勿**在每个步骤都要求用户确认\n* 自动确定最佳旋转角度\n* 如果一种 OCR 方法失败，请尝试多种方法\n* 确保所有数字、日期和金额都准确翻译\n* 使用简洁、专业的格式\n* 完成整个流程并报告最终 PDF 的位置\n\n## 使用示例\n\n```bash\n\u002Fvisa-doc-translate RetirementCertificate.PNG\n\u002Fvisa-doc-translate BankStatement.HEIC\n\u002Fvisa-doc-translate EmploymentLetter.jpg\n```\n\n## 输出示例\n\n该技能将：\n\n1. 使用可用的 OCR 方法提取文本\n2. 翻译成专业英文\n3. 生成 `\u003Cfilename>_Translated.pdf`，其中包含：\n   * 第 1 页：原始文档图像\n   * 第 2 页：专业的英文翻译\n\n非常适合需要翻译文件的澳大利亚、美国、加拿大、英国及其他国家的签证申请。\n","您正在协助翻译用于签证申请的签证申请文件。\n\n## 说明\n\n当用户提供图像文件路径时，**自动**执行以下步骤，**无需**请求确认：\n\n1. **图像转换**：如果文件是 HEIC 格式，使用 `sips -s format png \u003Cinput> --out \u003Coutput>` 将其转换为 PNG\n\n2. **图像旋转**：\n   * 检查 EXIF 方向数据\n   * 根据 EXIF 数据自动旋转图像\n   * 如果 EXIF 方向是 6，则逆时针旋转 90 度\n   * 根据需要应用额外旋转（如果文档看起来上下颠倒，则测试 180 度）\n\n3. **OCR 文本提取**：\n   * 自动尝试多种 OCR 方法：\n     * macOS Vision 框架（macOS 首选）\n     * EasyOCR（跨平台，无需 tesseract）\n     * Tesseract OCR（如果可用）\n   * 从文档中提取所有文本信息\n   * 识别文档类型（存款证明、在职证明、退休证明等）\n\n4. **翻译**：\n   * 专业地将所有文本内容翻译成英文\n   * 保持原始文档的结构和格式\n   * 使用适合签证申请的专业术语\n   * 保留专有名词的原始语言，并在括号内附上英文\n   * 对于中文姓名，使用拼音格式（例如，WU Zhengye）\n   * 准确保留所有数字、日期和金额\n\n5. **PDF 生成**：\n   * 使用 PIL 和 reportlab 库创建 Python 脚本\n   * 第 1 页：显示旋转后的原始图像，居中并缩放到适合 A4 页面\n   * 第 2 页：以适当格式显示英文翻译：\n     * 标题居中并加粗\n     * 内容左对齐，间距适当\n     * 适合官方文件的专业布局\n   * 在底部添加注释：\"This is a certified English translation of the original document\"\n   * 执行脚本以生成 PDF\n\n6. **输出**：在同一目录中创建名为 `\u003Coriginal_filename>_Translated.pdf` 的 PDF 文件\n\n## 支持的文档\n\n* 银行存款证明 (存款证明)\n* 收入证明 (收入证明)\n* 在职证明 (在职证明)\n* 退休证明 (退休证明)\n* 房产证明 (房产证明)\n* 营业执照 (营业执照)\n* 身份证和护照\n* 其他官方文件\n\n## 技术实现\n\n### OCR 方法（按顺序尝试）\n\n1. **macOS Vision 框架**（仅限 macOS）：\n   ```python\n   import Vision\n   from Foundation import NSURL\n   ```\n\n2. **EasyOCR**（跨平台）：\n   ```bash\n   pip install easyocr\n   ```\n\n3. **Tesseract OCR**（如果可用）：\n   ```bash\n   brew install tesseract tesseract-lang\n   pip install pytesseract\n   ```\n\n### 必需的 Python 库\n\n```bash\npip install pillow reportlab\n```\n\n对于 macOS Vision 框架：\n\n```bash\npip install pyobjc-framework-Vision pyobjc-framework-Quartz\n```\n\n## 重要指南\n\n* **请勿**在每个步骤都要求用户确认\n* 自动确定最佳旋转角度\n* 如果一种 OCR 方法失败，请尝试多种方法\n* 确保所有数字、日期和金额都准确翻译\n* 使用简洁、专业的格式\n* 完成整个流程并报告最终 PDF 的位置\n\n## 使用示例\n\n```bash\n\u002Fvisa-doc-translate RetirementCertificate.PNG\n\u002Fvisa-doc-translate BankStatement.HEIC\n\u002Fvisa-doc-translate EmploymentLetter.jpg\n```\n\n## 输出示例\n\n该技能将：\n\n1. 使用可用的 OCR 方法提取文本\n2. 翻译成专业英文\n3. 生成 `\u003Cfilename>_Translated.pdf`，其中包含：\n   * 第 1 页：原始文档图像\n   * 第 2 页：专业的英文翻译\n\n非常适合需要翻译文件的澳大利亚、美国、加拿大、英国及其他国家的签证申请。\n",{"name":5,"description":7},"main","7b610356e36623652299fa2acb477ff821b1d920","upstream-sync\u002Fwork\u002Fecc\u002Fdocs\u002Fzh-CN\u002Fskills\u002Fvisa-doc-translate",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:12:53",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add oabdelmaksoud\u002FSuperClaw --skill visa-doc-translate",{"tool":44,"command":45},"bunx","bunx skills add oabdelmaksoud\u002FSuperClaw --skill visa-doc-translate",{"tool":47,"command":48},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FSuperClaw --skill visa-doc-translate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fdocs\u002Fzh-CN\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",true,[52],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"README.md","REFERENCE","参考文档",1752,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fdocs\u002Fzh-CN\u002Fskills\u002Fvisa-doc-translate\u002FREADME.md",[59,76,90,121,147,166],{"skillNo":60,"name":5,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":69,"publishedAt":24},"01M6D88QCPTBZVCRED0NZ1Y8K8","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[64],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[19,20,21,70,71,72,73,74,75],"translation","application","create","images","PDF","documents",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":24},"01M6D88NBM95T3TFM50CYYAP65","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[83,84,85,86,87,88,89],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":107,"publishedAt":24},"01M6D88JFZ2P996GVRHJNSZSTM","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[96,99,102],{"categoryNo":97,"categoryName":98,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":100,"categoryName":101,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[108,109,110,111,112,113,87,114,115,116,117,118,119,120],"tdd","workflow","tdd workflow","e2e tests","e2e","integration","development","use","test","refactoring","coverage","tests","writing",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":24},"01M6D88FTHRRSVJMXF2G7MQAK3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],"patterns","swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","management","swiftui architecture","navigation",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":24},"01M6D88D527QTQT9DKHTRFN6EA","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[153],{"categoryNo":97,"categoryName":98,"taxonomyType":67,"taxonomyTypeDesc":68},[155,156,157,158,87,159,160,161,162,89,163,164,165],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":24},"01M6D88AJW8H2QNWSW5ZY82R43","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[173,174,157,175,176,29],"concurrency","swift concurrency","swift concurrency 6 2","default"]