{"adoption": {"forks": 730, "observed_at": "2026-08-28T04:11:06.890206+00:00", "stars": 14372}, "canonical_url": "https://ross.abutalabs.com/products/easydict", "card": {"archived": false, "artifact_type": "application", "description": "一个简洁优雅的词典翻译 macOS App。开箱即用，支持离线 OCR 识别，支持有道词典，🍎 苹果系统词典，🍎 苹果系统翻译，OpenAI，Gemini，DeepL，Google，Bing，腾讯，百度，阿里，小牛，彩云和火山翻译。A concise and elegant Dictionary and Translator macOS App for looking up words and translating text. ", "domain": ["desktop-applications", "developer-tools", "education"], "enriched": true, "function": ["nlp", "ocr", "tts"], "health_score": 100, "homepage": null, "language": "Swift", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["tisfeng/Easydict"], "name": "tisfeng/Easydict", "platform": [], "pushed_at": "2026-08-26T14:59:13+00:00", "repo": "tisfeng/Easydict", "stars": 14372, "tags": ["translation", "dictionary", "translator", "ocr-screenshot-translation", "word-lookup", "openai", "gemini", "deepl", "google-translate", "youdao", "apple-dictionary", "selected-text-translation", "text-to-speech", "swift", "gpl-3.0", "natural-language-processing", "macos", "desktop"], "topics": ["dictionary", "translate", "app", "macos", "baidu", "deepl", "google", "translator", "youdao", "ocr", "shortcuts", "bing", "tencent", "gemini", "openai"], "urls": [], "use_cases": ["translate selected text on mac with a shortcut key", "look up English words in a dictionary app on macOS", "translate text inside screenshots using OCR", "compare translation results from DeepL, OpenAI, Google, and Chinese services side by side", "get pronunciations for foreign words via text-to-speech", "quickly translate words while reading articles or docs", "silently OCR text from the screen without translating"], "what_it_is": "Easydict is a concise and elegant macOS dictionary and translation app for looking up words and translating text, ready to use out of the box with automatic language detection. It queries multiple translation services simultaneously (Apple Dictionary/Translate, OpenAI, Gemini, DeepL, Google, Youdao, Bing, and Chinese providers) and supports selected-text translation, shortcut triggers, TTS, and OCR screenshot translation.", "when_to_avoid": ["you need translation on Windows, Linux, or in the browser, since this is a macOS-only native app", "you want a translation library or API to embed in your own software rather than an end-user desktop app", "you require enterprise document or full-website translation workflows"], "when_to_choose": ["you are on macOS and want a free, polished translator that works out of the box with hotkeys and selected-text translation", "you want one app that aggregates many translation engines, including offline Apple Dictionary and LLM-based options like OpenAI or Gemini", "you frequently need screenshot-based OCR translation or word lookup while browsing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/easydict", "repo": "tisfeng/Easydict", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "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:11:06.890206+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:06.890206+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:36.881041+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "281137e51bee88fa36bffa25e4e871b38da89115bbfad625170c60c12d7d6045", "fetched_at": "2026-08-28T04:11:06.890206+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tisfeng/Easydict"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 99, "rhythm": 87}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1387, "days_push": 7, "days_rel": 87, "gap_med": 19.5, "n_releases_24m": 23}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}