{"adoption": {"forks": 415, "observed_at": "2026-09-01T02:14:06.381645+00:00", "stars": 1031}, "canonical_url": "https://ross.abutalabs.com/products/ruby-i18n-i18n", "card": {"archived": false, "artifact_type": "library", "description": "Internationalization (i18n) library for Ruby", "domain": ["web-development", "developer-tools"], "enriched": true, "function": ["internationalization"], "health_score": 99, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["ruby-i18n/i18n"], "name": "ruby-i18n/i18n", "platform": ["ruby"], "pushed_at": "2026-09-01T01:35:25+00:00", "repo": "ruby-i18n/i18n", "stars": 1031, "tags": ["i18n", "localization", "translations", "pluralization", "ruby-gem", "rails"], "topics": ["ruby", "i18n"], "urls": [], "use_cases": ["translate my ruby app into multiple languages", "add i18n to a rails application", "handle pluralization rules per locale", "switch locales at runtime in ruby", "load translations from yaml files", "localize dates and numbers in ruby", "store translations in a database with activerecord backend"], "what_it_is": "The standard internationalization and localization library for Ruby, providing translation lookup, locale switching, pluralization, and localization of dates, numbers, and currencies. It is the i18n engine used by Ruby on Rails and can also be used standalone in any Ruby project.", "when_to_avoid": ["you are not working in Ruby or Rails", "you need frontend/JavaScript i18n tooling", "you need machine translation or translation management workflows rather than lookup"], "when_to_choose": ["you are building a Rails app and need translations", "you need CLDR-compatible pluralization and locale fallbacks", "you want a pluggable backend (YAML, ActiveRecord, chain) for translation data", "you need a battle-tested, widely adopted Ruby i18n solution"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ruby-i18n-i18n", "repo": "ruby-i18n/i18n", "role": "main", "score": 88}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "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:14:06.381645+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:06.381645+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:07:29.417237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e775457d00e148102a49cb111af0bacd1c4a4f1dced81c381659051bb7227a4b", "fetched_at": "2026-09-01T02:14:06.381645+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ruby-i18n/i18n"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 65}, "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": 6655, "days_push": 2, "days_rel": 75, "gap_med": 125, "n_releases_24m": 6}, "score": 88, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}