{"adoption": {"forks": 127, "observed_at": "2026-08-28T04:08:07.821018+00:00", "stars": 3516}, "canonical_url": "https://ross.abutalabs.com/products/saber-translator", "card": {"archived": false, "artifact_type": "application", "description": "✨ 一款小白也能轻松使用的漫画翻译工具，旨在帮助漫画爱好者轻松跨越语言障碍，畅享原汁原味的日文漫画。  利用先进的 AI 技术，智能检测漫画中的对话气泡，精准识别日文文本，并快速翻译成流畅自然的中文。  ✨ 无论是图片还是 PDF 格式的漫画，Saber-Translator 都能轻松应对，让你无压力阅读心爱的漫画作品。", "domain": ["image-processing", "computer-vision", "media", "artificial-intelligence"], "enriched": true, "function": ["ocr", "image-processing", "machine-learning", "rag", "pdf", "gui"], "health_score": 99, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["MashiroSaber03/Saber-Translator"], "name": "MashiroSaber03/Saber-Translator", "platform": ["python", "cross-platform", "self-hosted"], "pushed_at": "2026-08-25T09:57:02+00:00", "repo": "MashiroSaber03/Saber-Translator", "stars": 3516, "tags": ["manga-translation", "comic-translation", "speech-bubble-detection", "text-inpainting", "manga-reader", "bookshelf-management", "japanese-to-chinese", "natural-language-processing", "desktop"], "topics": [], "urls": [], "use_cases": ["translate japanese manga to chinese", "remove text from manga panels and replace with translation", "convert manga pdfs into translated images", "edit and proofread machine-translated manga text", "organize translated manga into a library with chapters and tags", "ask questions about manga plot with AI analysis"], "what_it_is": "Saber-Translator is an AI-powered manga translation application that detects speech bubbles, OCRs Japanese text, translates it, inpaints the original text, and renders the translation back onto images or PDFs. It also includes an editor, bookshelf management, a built-in reader, and AI-based manga content analysis with semantic search.", "when_to_avoid": ["you need batch server-side translation of huge libraries via API without a GUI", "you translate languages or formats outside its supported OCR engines", "you need a lightweight CLI-only tool", "you require a permissive license (it is GPL-3.0)"], "when_to_choose": ["you want an all-in-one, beginner-friendly manga translation pipeline with GUI editing", "you need PDF/image import and PNG/ZIP/PDF/CBZ export", "you want flexible OCR and LLM translation backends including local models like Ollama", "you want built-in manga library management and reading"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/saber-translator", "repo": "MashiroSaber03/Saber-Translator", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.821018+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:35:34.651456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "01fcc5cf7ea39c836c0528db15177663036e25fb3f91f30b3198e83be8394e8f", "fetched_at": "2026-08-28T04:08:07.821018+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MashiroSaber03/Saber-Translator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 39, "rhythm": 74}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 559, "days_push": 8, "days_rel": 92, "gap_med": 1.0, "n_releases_24m": 61}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}