{"adoption": {"forks": 45, "observed_at": "2026-09-01T02:13:54.518756+00:00", "stars": 1166}, "canonical_url": "https://ross.abutalabs.com/products/offline-translator", "card": {"archived": false, "artifact_type": "application", "description": "Use Firefox Translation Models for on-device translation on Android", "domain": ["android-tools", "privacy"], "enriched": true, "function": ["nlp", "ocr", "tts", "pdf", "image-processing"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["DavidVentura/offline-translator"], "name": "DavidVentura/offline-translator", "platform": [], "pushed_at": "2026-08-29T22:27:33+00:00", "repo": "DavidVentura/offline-translator", "stars": 1166, "tags": ["offline-translation", "firefox-translation-models", "paddleocr", "language-detection", "transliteration", "dictionary", "f-droid", "privacy-friendly", "natural-language-processing", "localization", "android"], "topics": [], "urls": [], "use_cases": ["translate text on my phone without internet", "translate pdf documents offline on android", "translate text in photos offline", "private translation app that doesn't send data to servers", "translate non-latin scripts with transliteration", "look up word definitions offline", "automatically detect the language of text"], "what_it_is": "An Android app that translates text, PDF/ODT documents, and images entirely offline using Firefox translation models on-device. It also offers automatic language detection, transliteration for non-Latin scripts, OCR via PaddleOCR, and a Wiktionary-based word dictionary.", "when_to_avoid": ["you need translation quality comparable to large cloud models like Google Translate or DeepL", "you need translation on iOS, desktop, or web", "your language pair is not among the supported Firefox translation models"], "when_to_choose": ["you need translation on Android with no internet connection", "privacy matters and you don't want text sent to cloud services", "you need OCR-based image or document translation offline", "you want a free, open-source, F-Droid-installable translator"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/offline-translator", "repo": "DavidVentura/offline-translator", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-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-09-01T02:13:54.518756+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:13:54.518756+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:30.836273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5850b93e5ca1ff1fcb33772de0ef089160c57d6ccb62ef96de850009f1493eb", "fetched_at": "2026-09-01T02:13:54.518756+00:00", "kind": "readme", "missing": false, "url": "https://github.com/DavidVentura/offline-translator"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 43, "rhythm": 99}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 602, "days_push": 4, "days_rel": 7, "gap_med": 7, "n_releases_24m": 34}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}