# lingui/js-lingui

🌍 📖 A readable, automated, and optimized (2 kb) internationalization for JavaScript

Repository: https://github.com/lingui/js-lingui
Canonical: https://ross.abutalabs.com/products/js-lingui
Homepage: https://lingui.dev
Language: TypeScript
License: MIT
License Family: permissive
Topics: translation, internationalization, javascript, i18n, localization, icu, react, react-components, messageformat, intl, react-native, hacktoberfest
Last push: 2026-08-14T09:54:25+00:00

## Health v2 (maintenance only)
Score: 97/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 97, release rhythm 94, longevity 100
- inputs: {"age_days": 3515, "days_push": 19, "days_rel": 40, "gap_med": 16, "n_releases_24m": 36}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 5858, forks 451 (observed 2026-08-28T04:09:31.732508+00:00)

## What it is
Lingui is a lightweight (2 kb core) internationalization (i18n) framework for JavaScript and TypeScript projects, built on ICU MessageFormat. It provides framework-agnostic core functionality, React/React Native/SolidJS bindings, and tooling (CLI, Vite plugin, ESLint plugin) to extract, compile, and manage translation catalogs in PO, JSON, or CSV formats.

## Use cases
- internationalize a React web application
- translate UI strings into multiple languages
- handle plurals and gender in translations
- extract translatable messages from source code into PO files
- add i18n to a React Native mobile app
- localize a Node.js backend or CLI
- manage translation catalogs with translators using standard tools

## When to choose
- you want a lightweight i18n library with a tiny bundle footprint
- your project uses React, React Native, SolidJS, Vue, Astro, or Svelte
- you need ICU MessageFormat support for plurals, genders, and selects
- you want a full extract-and-compile workflow with CLI tooling
- your translators work with standard PO files or translation tools

## When to avoid
- you need i18n for a non-JavaScript stack
- you prefer a framework with built-in opinionated routing-based localization like Next.js i18n routing
- you need heavy machine-translation or TMS features out of the box
- your project is a single-language app with no localization plans

## Facets
- artifact type: library
- maturity: stable
- function: internationalization, cli, ui-components, plugin-system, developer-tools
- domain: web-development, frontend, cross-platform, developer-tools
- platform: browser, cli, cross-platform
- tags: i18n, icu-messageformat, react, react-native, solidjs, translation-workflow, po-files, vite-plugin, eslint-plugin, message-catalogs, localization, nodejs, web-server, mobile

## Member repositories
- lingui/js-lingui (main) score 97

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:31.732508+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:51:38.456941+00:00, confidence not recorded.
  - readme: https://github.com/lingui/js-lingui (fetched 2026-08-28T04:09:31.732508+00:00, sha 6027b2b6b3c2)
  - homepage: https://lingui.dev (fetched 2026-08-29T08:47:33.407796+00:00, sha 2d45b6a71ef3)
  - site_page: https://lingui.dev/introduction (fetched 2026-08-29T08:47:33.417763+00:00, sha 315222368772)
  - site_page: https://v5.lingui.dev/ (fetched 2026-08-29T08:47:33.420473+00:00, sha b52baf8e7032)
  - site_page: https://v4.lingui.dev/ (fetched 2026-08-29T08:47:33.422481+00:00, sha 92e546000ba8)
- Data as of 2026-08-30T08:39:29.467469+00:00.
