Page Translator

Translate your Framer pages into any language with ChatGPT, Claude, DeepL, or any LLM. Real pages, real URLs, SEO-ready.

1. Quick start

  1. Install Page Translator from the Framer Marketplace.
  2. Open the plugin from the canvas.
  3. Pick your pages and target language.
  4. Choose a mode: LLM copy/paste (free) or DeepL automatic (requires DeepL key).
  5. If LLM: copy the prompt, paste into ChatGPT/Claude/Gemini, paste the JSON back. If DeepL: the plugin runs automatically.
  6. The plugin creates real Framer pages at /fr, /de, /es, etc.
  7. Insert the auto-generated Language Switcher component. Publish your site.
Screenshot Plugin main screen on canvas showing the page picker with a few pages selected, the target language dropdown, and the two mode options (LLM copy/paste vs DeepL).

2. Translation modes

LLM copy/paste (works with any AI)

The plugin extracts all text nodes from your pages into a structured prompt. Paste it into ChatGPT, Claude, Gemini, or any LLM. Paste the returned JSON back into the plugin. Pages are generated.

Advantage: no extra subscription. Works with whatever AI you already pay for.

DeepL automatic mode

Paste your DeepL API key. The plugin runs the full translation pipeline without copy/paste. DeepL closed its old 500k-per-month free API plan to new signups; new accounts get a one-time 1,000,000-character credit that does not reset.

Advantage: fully automatic. DeepL is historically strongest on European languages, German especially. On Japanese and Chinese, independent human evaluation (WMT24) puts frontier LLMs ahead, so prefer the copy/paste mode there.

Screenshot Side-by-side: left = LLM mode with the copy-prompt button and paste-JSON textarea. Right = DeepL mode with the API key field validated.

3. Glossary

Protect brand terms (product names, proper nouns, technical jargon) across all translations. Add terms in the Glossary panel:

  • Keep as-is: the term is preserved untouched in every language.
  • Custom per language: specify a custom translation for each target language.

Applied automatically to both DeepL and LLM modes.

Screenshot Glossary panel with 2 or 3 sample terms: one "Keep as-is" entry and one "Custom per language" entry expanded to show language-specific translations.

4. Language switcher

After the first translation, the plugin auto-generates a Language Switcher code component. Insert it on canvas with one click. Three display modes:

  • Dropdown — classic menu with flags and language names.
  • Flags bar — all languages visible, flag-first.
  • Minimal — compact, text-only.

Fully customizable: colors, borders, typography, shadow depth, animations.

Screenshot Preview of the 3 switcher variants (Dropdown / Flags bar / Minimal) on a live Framer page, plus the component customization panel open on the right.

5. Sync modified pages

Changed 3 paragraphs on /home? Sync detects those 3 nodes and re-translates them. The rest stays untouched. No more full re-translations when you only tweak a headline.

Sync requires Pro. Free tier is one-shot translation only.

6. Free vs Pro

FeatureFreePro (€29 one-time)
Target languages1Unlimited
Pages per translation5 maxUnlimited
LLM mode (ChatGPT, Claude, Gemini...)YesYes
DeepL automatic modeYesYes
Glossary (brand terms protection)YesYes
Slugs translatedYesYes
Language Switcher componentYesYes
Sync modified pagesYes, text-node diff
hreflang SEO tagsYes, injected site-wide
Custom languages (beyond the built-in list)Yes
Priority supportYes
Lifetime updatesYes

Bundle with CMS Translator (collections) for €39 total via the Translation Pack.

7. Troubleshooting

Some pages show no text to translate

If a page is built mostly from components, any text baked inside a component stays invisible to the plugin until it's exposed as a component property. Open the component, select the text layer, and in the Content field click Create Variable → Plain Text. The text becomes an editable property and the plugin picks it up on the next run. Text placed directly on the page, or passed into a component slot, is always detected.

"Translation failed" in DeepL mode

Check your DeepL key is valid (Validate button in the plugin). Check DeepL quota. Retry.

LLM returned invalid JSON

Paste the raw output back into ChatGPT/Claude and ask: "Return only valid JSON, no commentary". Paste the cleaned version.

Language Switcher not showing links

The switcher only works on the published site. On the canvas it shows a toast reminder.

hreflang tags missing

Pro feature. Check that your plan is active and the tags have been generated (Settings → hreflang).

8. FAQ

Does this replace Framer's native Locales?

Yes for static pages. The plugin creates real pages at real URLs (/fr/about, /de/contact) indexed by Google. Works on any Framer plan (Free, Basic, Pro, Scale) without the paid Locales add-on.

What about CMS collections?

Use CMS Translator, the sister plugin. Bundle them with the Translation Pack (€39).

Can I edit translated pages?

Yes. Translated pages are real Framer pages. Edit any text, component, or layout directly. Sync re-translates upstream changes at the text-node level without overwriting manual tweaks (Pro).

Can I add a language DeepL doesn't cover?

Yes, via a custom language entry. Define a code and a label, then use LLM copy/paste mode with ChatGPT or Claude to handle the translation for that language. Pro.

Refund policy?

If Pro doesn't work as described, email me within 14 days of purchase for a full refund. Translated pages stay in your project after you uninstall, so a refund covers a fault, not a change of mind. Full policy.

9. Support