PACKAGE · INTERNATIONALIZATION

@lingui/core

Internationalization (i18n) tools for JavaScript

WEEKLY DOWNLOADS 600.3K
STARS 5.8K
FORKS 441
OPEN ISSUES 65
GZIP SIZE 2.1 kB
UNPACKED SIZE 28.4 kB
DEPENDENCIES 4
LAST UPDATED 3mo ago
DOWNLOAD TRENDS

@lingui/core downloads — last 12 months

Download trends for @lingui/core1 download series from Jun 2025 to May 2026. Use left and right arrow keys to inspect monthly values.01.3M2.6M3.9M5.2MJun 2025SepDecMarMay 2026
@lingui/core
ABOUT @LINGUI/CORE

LinguiJS Core provides a comprehensive toolkit for internationalizing JavaScript applications, addressing the core challenge of delivering localized content to a global user base. It enables developers to manage translations, format messages with ICU syntax, and integrate seamlessly into modern JavaScript workflows.

The library's philosophy centers around developer experience and robust internationalization features. It aims to be flexible enough for various application architectures while providing powerful tools for handling complex translation scenarios, making it suitable for teams prioritizing maintainable and scalable localization.

Key API patterns include the `useLingui` hook for accessing translation functions and language switching within React applications. It leverages directives and declarative components for easy integration into JSX, such as the `<Trans>` component and the `t` function for direct translation calls. Message formatting is powered by ICU MessageFormat for sophisticated pluralization, gender, and date/time localization.

LinguiJS Core integrates well with various frontend frameworks and build tools. It supports React, React Native, and can be used with frameworks like Next.js. Its CLI tools facilitate extraction of translatable messages and compilation of locale data, fitting into common development workflows for managing translation assets.

With a small unpacked and gzipped bundle size of 28.4 kB and 2.1 kB respectively, LinguiJS Core offers performance-conscious internationalization. Its maturity is reflected in consistent updates and a significant weekly download count of 1.2 million, indicating a stable and actively used library in the developer community.

While powerful, developers should be aware that managing complex translation logic and integrating with existing localization platforms might require careful configuration. The library's extensive features, though beneficial, could introduce a learning curve for developers new to advanced i18n concepts or the ICU syntax.

WHEN TO USE
  • When you need to manage complex pluralization and gender rules using ICU syntax via the `t` function or `<Trans>` component.
  • When integrating internationalization into React or React Native applications using hooks like `useLingui`.
  • When you require a CLI tool to extract translatable strings from your codebase and compile locale data.
  • When building applications that need to dynamically switch languages at runtime.
  • When you need to leverage interpolation for dynamic content within translated messages.
  • When adhering to the MessageFormat standard for consistent message structure across platforms.
WHEN NOT TO USE
  • If you only require simple static text replacements across a limited set of languages, a less feature-rich alternative might suffice.
  • If your project exclusively uses server-side rendering without client-side hydration for user interactions, a different i18n approach might be simpler.
  • When the overhead of managing message catalogs and compilation steps is not justified by the internationalization needs.
  • If you intend to rely solely on browser's built-in Intl API for all localization needs without custom formatting or extraction tools.
  • When a very minimal i18n solution is strictly required and bundle size is paramount, consider evaluating lighter packages.

CORRECTIONS

Spot wrong data here?

A short note helps us fix it.

Anonymous · No account · No email back

COMPARISONS 3
@lingui/core vs i18next ★ 8.6K · 8.8M/wk @lingui/core vs next-intl ★ 4.3K · 1.9M/wk @lingui/core vs @formatjs/intl ★ 14.7K · 1.5M/wk