You translate a Lovable app one of two ways: attach a runtime widget that rewrites the page after it loads, or wire an i18n library into the generated code and commit locale files to your repo. The widget is faster today. The repo method is the one you still own next year. globalize.now is AI-powered localization infrastructure that automates the repo method: it extracts hardcoded strings from your Lovable codebase, generates the locale files, and keeps every language in sync on each Git push.
What are the two ways to translate a Lovable app?
Every tool for translating a Lovable app is a variant of one of two methods: runtime translation or repo-native i18n.
Runtime translation means a script tag on your published site. The page renders in English, the widget detects the text in the DOM, and swaps it for the visitor's language. Weglot and LocalizeJS work this way, and Lovalingo did until it announced it is closing on August 31, 2026. Your source code never changes; neither does your ownership of the translations, because you never had it.
Repo-native i18n means the strings in your generated code are replaced with translation keys, the translated text lives in catalog files committed next to your components, and the server renders each language directly. On Lovable's stack that is Lingui with PO catalogs, rendered by TanStack Start before any HTML reaches the browser.
The rest of this post walks through both, and what happens to each when the tool behind it disappears.
How do you translate a Lovable app with a runtime widget?
Paste the vendor's script tag into your published Lovable site, pick target languages in their dashboard, and republish. You are done in minutes, and for a marketing page you need in Spanish by Friday, that can be the right call.
The trade-offs arrive later. The page paints in English first and swaps afterward, which visitors see as a flash of the wrong language. Search engines have to trust the vendor's proxy or JavaScript layer to serve the translated version. Pricing scales with languages: Lovalingo, for example, charged for its hreflang SEO features starting at its $9 tier. And the translated text lives on the vendor's servers, not in your project.
That last point stopped being theoretical this summer. When a widget vendor shuts down, every site using it reverts to English the day the script dies.
How do you translate a Lovable app from inside the repo?
Prompt Lovable to wire an i18n library, then connect the repo to globalize.now so the catalogs stay full automatically. Four steps:
- Wire the library. Ask Lovable to add Lingui to the project. New Lovable apps have generated TanStack Start with server-side rendering since May 2026; older projects are Vite single-page apps. The setup differs, so follow the per-stack guide: TanStack Start or classic Vite.
- Extract the strings. Lingui's extractor pulls every user-facing string into per-locale PO catalog files, committed to the repo like any other source file.
- Connect the repo to globalize.now. Install the workspace skill so your AI editor handles the wiring, then link the GitHub repo on the Lovable integration page.
- Publish the locale routes and keep building. From now on, every push is scanned: new hardcoded strings are extracted, keyed against your existing catalogs, translated, and committed back. The gap where translations break on every push, the classic failure mode of hand-run i18n in Lovable, never opens.
Outside the Lovable editor, the same workspace skill installs from a terminal:
npx skills add globalize-now/globalize-skillsThe result is an app where German or Japanese is not a layer on top of the site. It is the site, rendered server-side on its own URL.
What happens to widget translations when the vendor shuts down?
They stop existing. Lovalingo's closure is the live case: the service ends August 31, 2026, and its own wind-down guidance tells customers to implement project-owned internationalization, which is an argument for committed catalogs made by a widget vendor. If you are migrating from it, the Lovalingo migration guide covers the full path.
Committed PO files fail differently. They are plain text in your Git history. Stop paying for globalize.now and your app still ships every language it has; you have only lost the automation that keeps new strings translated. For vibe coders whose entire product lives in one repo, that is the difference between renting translations and owning them.
How much does it cost to translate a Lovable app?
The globalize.now Starter plan is β¬20/month per workspace. That includes β¬20 of translation credit (about 200,000 words) a month; above that, usage continues at the same per-character rate. No per-seat charges and no per-language charges, and a typical app with 10,000 translation keys across 5 locales lands comfortably inside the included volume. Signup comes with a β¬5 translation credit and needs no card.
Compare that to widget pricing, which typically meters languages and traffic: more markets, higher tier. With unlimited projects per workspace, every Lovable app you spin up shares the same plan. Full detail is on the pricing page, and the engineering view is on the developers page.
globalize.now handles the repo method end to end. Set it up once and every push keeps every language current.
globalize.now turns hardcoded app copy into translation-ready locale files and keeps them updated as you ship.
Try globalize.now free