lingui/js-lingui

🌍 πŸ“– A readable, automated, and optimized (2 kb) internationalization for JavaScript

View on GitHub β†—Jump to charts ↓

Summary Information

Updated 37 seconds ago
Added to GitGenius on September 11th, 2026
Created on January 17th, 2017
Open Issues & Pull Requests: 66 (+0)
GitHub issues: Enabled
Number of forks: 457
Total Stargazers: 5,876 (+0)
Total Subscribers: 32 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 41
New in 7 days: 0
Closed in 7 days: 2
Avg open age: 403 days
Stale 30+ days: 38
Stale 90+ days: 29

Recent activity

Opened in 7 days: 0
Closed in 7 days: 2
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (77)
  • good first issue (8)
  • help wanted (8)
  • πŸ“– documentation (8)
  • triage: needs-repo (4)
  • triage: proposal (4)
  • ⚫ Next.js (3)
  • πŸ’‘ new feature (3)

Detailed Description

js-lingui is an internationalization library for JavaScript that brings compile-time macros and message extraction to React, React Native, Vue, SolidJS, Astro, Svelte, and Node.js.

The library solves the friction of key-based i18n by keeping translatable text inline with the code that uses it, rather than requiring developers to invent message keys and maintain separate JSON files. Text wrapped in the Trans macro stays readable in source code and diffs, while a CLI extraction step automatically generates PO catalogs from the source without manual bookkeeping. Catalogs are compiled ahead of time into optimized runtime output, eliminating the need to ship a MessageFormat parser to the browser. Rich text and React components embed naturally within messages, with translators seeing numbered tags instead of markup.

Lingui suits projects where readable source code and translator experience matter, particularly React applications and frameworks with build-time compilation. The tool's approach differs from key-based libraries by eliminating the disconnect between code and translation files, and it differs from runtime-parsed solutions by compiling messages at build time to keep the core bundle small. Teams should adopt it if they value keeping copy visible in code reviews and want stable message IDs generated automatically rather than managed manually.

Almost all open issues are raised by outside users rather than the core team, indicating a substantial base of adopters reporting real-world use. Maintainers typically respond to new issues and pull requests within a day. Work in the issue tracker is dominated by bug reports, documentation improvements, and triage tasks requiring reproduction steps.