[{"data":1,"prerenderedAt":300},["ShallowReactive",2],{"content-\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-export":3,"children-\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-export":299},{"id":4,"title":5,"author":6,"body":7,"budget_tier":6,"build_tags":6,"created":6,"description":290,"document_type":291,"extension":292,"game":6,"install":36,"investment_tier":6,"league":6,"meta":293,"navigation":294,"patch":6,"path":295,"plugin":24,"profit_per_hour":6,"ratings":6,"seo":296,"skills_count":6,"status":6,"stem":297,"strategy_tier":6,"tags":6,"updated":6,"version":6,"weight":6,"__hash__":298},"content\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-export.md","aio-epub-export",null,{"type":8,"value":9,"toc":276},"minimark",[10,37,42,45,60,65,75,79,84,90,94,100,104,110,114,163,167,177,201,205,257],[11,12,13],"blockquote",{},[14,15,16,17,25,26,25,30,33,34],"p",{},"From plugin ",[18,19,21],"a",{"href":20},"\u002Fplugins\u002Faio-epub-translate",[22,23,24],"strong",{},"aio-epub-translate"," · ",[27,28,29],"code",{},"v4.0.0",[22,31,32],{},"Install:"," ",[27,35,36],{},"\u002Fplugin install aio-epub-translate@aiocean-plugins",[38,39,41],"h1",{"id":40},"epub-export-pack-download","EPUB Export — Pack & Download",[14,43,44],{},"Pack translated books back into EPUB format for reading or distribution.",[11,46,47],{},[14,48,49,52,53,56,57,59],{},[22,50,51],{},"Trước khi xuất",": Chạy ",[27,54,55],{},"aio-epub-quality"," để kiểm tra chất lượng. Chapters chưa dịch xong? Dùng ",[27,58,24],{},".",[61,62,64],"h2",{"id":63},"api-setup","API Setup",[66,67,73],"pre",{"className":68,"code":70,"language":71,"meta":72},[69],"language-python","import json, urllib.request, os\n\nBASE = \"https:\u002F\u002Fread-api.aiocean.dev\u002FListBooks.v1.BookService\"\nKEY = os.environ.get(\"AIO_EPUB_API_KEY\", \"duocnv\")\n\ndef api(method, body):\n    data = json.dumps(body).encode('utf-8')\n    req = urllib.request.Request(f\"{BASE}\u002F{method}\", data=data, headers={\n        \"Content-Type\": \"application\u002Fjson\",\n        \"X-License-Key\": KEY\n    })\n    with urllib.request.urlopen(req) as resp:\n        return json.loads(resp.read())\n","python","",[27,74,70],{"__ignoreMap":72},[61,76,78],{"id":77},"workflow","Workflow",[80,81,83],"h3",{"id":82},"_1-check-translation-status-first","1. Check Translation Status First",[66,85,88],{"className":86,"code":87,"language":71,"meta":72},[69],"progress = api(\"GetTranslationProgress\", {\"bookId\": BOOK_ID})\npct = progress[\"progress\"][\"translationPercentage\"]\nprint(f\"Translation progress: {pct:.1f}%\")\n\nif pct \u003C 100:\n    untranslated = []\n    for fp in progress[\"progress\"].get(\"fileProgress\", []):\n        if fp[\"translationPercentage\"] \u003C 100:\n            untranslated.append(f\"  {fp['filePath']}: {fp['translationPercentage']:.0f}%\")\n    print(f\"\\nWarning: {len(untranslated)} chapters incomplete:\")\n    print(\"\\n\".join(untranslated))\n",[27,89,87],{"__ignoreMap":72},[80,91,93],{"id":92},"_2-pack-epub","2. Pack EPUB",[66,95,98],{"className":96,"code":97,"language":71,"meta":72},[69],"# Bilingual (original + translation side by side)\nresult = api(\"PackEpub\", {\n    \"bookId\": BOOK_ID,\n    \"packMode\": \"BILINGUAL\"\n})\nprint(f\"EPUB URL: {result['epubUrl']}\")\nprint(f\"Message: {result['message']}\")\n\n# Translation only (remove original text)\nresult = api(\"PackEpub\", {\n    \"bookId\": BOOK_ID,\n    \"packMode\": \"TRANSLATION_ONLY\",\n    \"stripMarkers\": True  # remove data-* attributes for clean output\n})\nprint(f\"EPUB URL: {result['epubUrl']}\")\n",[27,99,97],{"__ignoreMap":72},[80,101,103],{"id":102},"_3-send-to-kindle","3. Send to Kindle",[66,105,108],{"className":106,"code":107,"language":71,"meta":72},[69],"result = api(\"SendToKindle\", {\n    \"bookId\": BOOK_ID,\n    \"name\": \"My Book\",\n    \"email\": \"your-kindle@kindle.com\"\n})\nprint(result[\"message\"])\n",[27,109,107],{"__ignoreMap":72},[61,111,113],{"id":112},"pack-modes","Pack Modes",[115,116,117,133],"table",{},[118,119,120],"thead",{},[121,122,123,127,130],"tr",{},[124,125,126],"th",{},"Mode",[124,128,129],{},"Description",[124,131,132],{},"Use Case",[134,135,136,150],"tbody",{},[121,137,138,144,147],{},[139,140,141],"td",{},[27,142,143],{},"BILINGUAL",[139,145,146],{},"Original + translation paragraphs",[139,148,149],{},"Learning, reference",[121,151,152,157,160],{},[139,153,154],{},[27,155,156],{},"TRANSLATION_ONLY",[139,158,159],{},"Only translated text",[139,161,162],{},"Reading, distribution",[80,164,166],{"id":165},"strip-markers-option","Strip Markers Option",[14,168,169,170,173,174,176],{},"When ",[27,171,172],{},"stripMarkers: true"," with ",[27,175,156],{}," mode:",[178,179,180,195,198],"ul",{},[181,182,183,184,187,188,187,191,194],"li",{},"Removes all ",[27,185,186],{},"data-content-id",", ",[27,189,190],{},"data-translation-id",[27,192,193],{},"data-translation-by-id"," attributes",[181,196,197],{},"Produces clean HTML suitable for publishing",[181,199,200],{},"Recommended for final export",[61,202,204],{"id":203},"điều-hướng","Điều hướng",[115,206,207,217],{},[118,208,209],{},[121,210,211,214],{},[124,212,213],{},"Tình huống",[124,215,216],{},"Dùng skill",[134,218,219,228,237,247],{},[121,220,221,224],{},[139,222,223],{},"Có chapters chưa dịch",[139,225,226],{},[27,227,24],{},[121,229,230,233],{},[139,231,232],{},"Muốn kiểm tra chất lượng trước khi xuất",[139,234,235],{},[27,236,55],{},[121,238,239,242],{},[139,240,241],{},"Xem tiến độ tổng thể",[139,243,244],{},[27,245,246],{},"aio-epub-manage",[121,248,249,252],{},[139,250,251],{},"Upload sách mới",[139,253,254],{},[27,255,256],{},"aio-epub-upload",[14,258,259,261,262,265,266,265,268,265,270,265,272],{},[22,260,78],{},": ",[27,263,264],{},"aio-epub-setup"," → ",[27,267,256],{},[27,269,24],{},[27,271,55],{},[22,273,274],{},[27,275,5],{},{"title":72,"searchDepth":277,"depth":277,"links":278},2,[279,280,286,289],{"id":63,"depth":277,"text":64},{"id":77,"depth":277,"text":78,"children":281},[282,284,285],{"id":82,"depth":283,"text":83},3,{"id":92,"depth":283,"text":93},{"id":102,"depth":283,"text":103},{"id":112,"depth":277,"text":113,"children":287},[288],{"id":165,"depth":283,"text":166},{"id":203,"depth":277,"text":204},"Pack and export translated EPUB books as bilingual or translation-only output.","skill","md",{},true,"\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-export",{"title":5,"description":290},"plugins\u002Faio-epub-translate\u002Faio-epub-export","kbOG8Yi5HB9_JjTK76ZCQaN7xdemdXZ202L6iPuXEFc",[],1779707416375]