Lingui vs react-i18next: Which should you use for your Lovable app?
Both libraries handle React i18n well. The right choice depends on how much setup you want to do yourself — and whether you are building inside Lovable.
What is react-i18next?
react-i18next is the most widely adopted React i18n library. It wraps the popular i18next framework and gives you hooks like useTranslation, JSON-based namespaces, and a rich plugin ecosystem. If you have worked with internationalization in React before, you have probably touched it.
It is powerful, but that power comes with configuration. You typically define JSON files per locale and namespace, configure the backend, set up interpolation and formatting, and keep namespaces in sync as your app grows.
What is Lingui?
Lingui is a modern React i18n library built around compile-time extraction. You write translations with JSX macros like <Trans> and template tags, then run an extractor that produces PO catalogs. Those catalogs are compiled into small JavaScript modules at build time.
The result is a type-safe, lightweight runtime with built-in support for plurals, select, dates, and numbers. It is especially well suited to automated workflows because every visible string can be discovered and extracted from source code.
Developer experience comparison
| Feature | Lingui | react-i18next |
|---|---|---|
| Translation syntax | JSX <Trans> macros and t`...` templates | useTranslation hook and t() function |
| Catalog format | PO files, compiled to tiny JS modules at build time | JSON namespaces loaded at runtime |
| Extraction | CLI extracts every macro automatically | Manual JSON editing or custom scripts |
| Plurals & ICU | Built-in <Plural>, Select, and date/number helpers | Requires i18next plugins and format functions |
| Bundle size | Small runtime; translations are pre-compiled | Larger runtime; loads namespaces on demand |
| Lovable skill support | lovable-i18n automates setup, macros, and extraction | No official Lovable skill; manual wiring required |
How the lovable-i18n skill automates Lingui setup
The biggest difference for Lovable users is automation. The lovable-i18n skill turns Lingui setup from a manual checklist into a single chat command.
- 1Detects your stackThe skill recognizes Vite SPA or TanStack Start and adds the right Lingui packages and Vite plugin.
- 2Wraps strings in macrosIt rewrites visible text into <Trans> and useLingui() t`...` calls so every UI string is extractable.
- 3Scaffolds PO catalogsOne messages.po per locale is created under src/locales//, ready for translators.
- 4Extracts on every pushA GitHub Action runs the Lingui extractor and opens a PR with new source strings.
- 5Translates via Globalize.nowGlobalize.now reads the updated PO files and returns translated strings in the same PR.
Choose Lingui if...
- You build inside Lovable and want the skill to do the wiring.
- You prefer compiled, type-safe translation catalogs.
- You want macros for plurals, dates, and numbers without extra plugins.
- Bundle size and build-time validation matter to you.
Stick with react-i18next if...
- You already have a large react-i18next codebase to preserve.
- You need runtime-loaded JSON namespaces with lazy loading.
- Your team is deeply invested in the i18next plugin ecosystem.
- You are not using Lovable's automated workflow.
Verdict for Lovable apps
react-i18next remains the industry standard and is a safe choice for teams already using it. But if you are starting fresh in Lovable, Lingui plus the lovable-i18n skill is the faster path. The skill removes the boilerplate, the compiled catalogs keep bundles small, and the macro-based API matches how Lovable generates code.
You do not have to choose blindly. Add the skill, let it set up Lingui in your project, and compare the resulting workflow to a manual react-i18next integration. Most Lovable teams find that the automated extraction alone saves hours on every feature.
Ready to set up Lingui in your Lovable project?
Follow the step-by-step guide and add the lovable-i18n skill in minutes.