Most codebases were never built for localization.

Connect your repo and globalize.now finds every hardcoded string and converts it into a structured i18n architecture automatically — from the app, or driven by your coding agent.

Works with React, Next.js, Vue, and modern frontend frameworks.

Building with Cursor or Lovable? See our guide for AI-built apps.

Output

Before

<button>Submit order</button>

After

<button>{t("checkout.submit_order")}</button>
locales/
  en.json  fr.json  es.json

How does globalize.now convert hardcoded UI strings to i18n keys?

Works with React, Next.js, Vue, and modern frontend frameworks. Connect your repo in the app and the scan takes it from there — or run it from your coding agent.

Scanning your repo

Scanning repository...

hardcoded UI strings detected

translation keys generated

locale files created

glossary generated

Your app is now ready for localization.

In the app we work on a clone, so your branch is untouched until you merge. On the agent path it runs locally on your machine.

Prefer to run this from your coding agent? See the agent path →

Connect the MCP

Connect the Globalize MCP to Claude, Cursor, or any MCP client and run localization from your agent.

Endpoint

https://api.globalize.now/mcp

Claude Code

claude mcp add --transport http globalize https://api.globalize.now/mcp

Cursor — add to ~/.cursor/mcp.json

{"mcpServers":{"globalize":{"url":"https://api.globalize.now/mcp"}}}

Claude.ai / any client — add as a custom connector with the URL above (OAuth sign-in, no API key)

The MCP manages projects, translations, and GitHub sync — it does not internationalize your code. Run the skills first (see Get started).

What globalize.now actually changes in your repo

globalize.now analyzes your repository and introduces a real localization structure automatically.

components/checkout/button.tsx

Before

Submit order

After

{t("checkout.submit_order")}
locales/en.json
{
  "checkout.submit_order": "Submit order"
}

Whether the run happens in the app or through your agent, the changes to your repo are the same:

  • extract UI strings from components
  • generate structured translation keys
  • create locale files
  • rewrite UI strings to use translation keys

Why localization becomes painful in real codebases

Most applications start without internationalization. Over time UI text becomes embedded directly inside components.

By the time localization is needed:

  • UI strings are scattered across hundreds of files
  • duplicated copy appears across the interface
  • translation keys were never designed
  • no locale structure exists

Adding i18n at this stage usually means rewriting large parts of the UI.

What globalize.now generates

Extract UI strings from your codebase

Scan components, routes, and templates for user-facing text.

How does globalize.now generate structured translation keys?

Convert UI strings into namespaced i18n keys.

What locale files does globalize.now generate automatically?

Generate locale JSON files and a shared glossary.

How it works

1

Scan your repository

Analyze the codebase to detect user-facing UI strings.

2

Normalize UI text

Convert UI strings into consistent translation keys.

3

Generate localization files

Create locale JSON files and a shared translation glossary.

Add localization to your codebase without rewriting your UI.

Automatically generate the i18n structure your app needs.

Start free with €5 of translation credit. Paid plans for larger repos and teams.

Make my app multilingual

Choose your workflow

globalize.now works whether your UI is written by AI or built in a traditional codebase.

AI-generated apps

AI tools often hardcode English directly inside UI components.globalize.now extracts those strings and generates a proper i18n structure automatically.

For AI builders

Developer codebases

Legacy apps often embed UI text across hundreds of components and files.globalize.now scans the repository and converts those strings into structured translation keys.

For developers