Documentation

CMS Translator, pas à pas

Traduire une collection du CMS Framer en une nouvelle collection par langue, la publier en /fr/blog ou /de/blog, la garder à jour avec la source, et réparer ce qui coince.

Version 2.4
Sur cette page

Démarrer

Démarrer en deux minutes

CMS Translator s’ouvre depuis le CMS de ton projet Framer, jamais depuis le canvas. Le chemin est toujours le même, CMS, + Add Collection, CMS Translator.

  1. Installe le plugin depuis sa page Marketplace.
  2. Dans ton projet, ouvre le CMS et clique sur + Add Collection. Choisis CMS Translator dans le menu. Framer te demande d’abord un nom, donne celui que tu veux voir dans ton CMS, Blog FR par exemple.
  3. Sur Source, choisis la collection à traduire (ton blog, par exemple) et clique sur la langue voulue. Clique sur Continue.
  4. Sur Method, garde Instant translation et clique sur Continue.
  5. Sur Create, clique sur Translate 6 items → (le nombre dépend de ta collection).
  6. Quand l’écran affiche Collection translated, la nouvelle collection est dans ton CMS.
Le menu + Add Collection du CMS de Framer, CMS Translator trouvé sous Marketplace plugins

Ta collection source n’est pas modifiée. La traduction est une nouvelle collection, une par langue, que tu lies à une page comme n’importe quelle collection. La section suivante explique comment la mettre en ligne.

L’interface du plugin est en anglais par défaut, et les libellés de cette page sont ceux de l’anglais. Elle existe aussi en français, menu ••• puis Language.

Ta première collection est gratuite. Elle couvre une collection dans une langue, et Instant est compris pour une collection d’environ 15 000 caractères au plus.

Ta première traduction, en détail

Le plugin tient en trois onglets, Source, Method et Create, sous le titre Create a translated collection. Tu avances avec le bouton du bas ou en cliquant sur un onglet. Un onglet affiche un cadenas tant que le précédent n’est pas rempli.

Avant de commencer

  • Ta collection source doit avoir au moins un item, et ton rôle Framer doit pouvoir modifier le CMS du projet. Sinon le plugin affiche Edit access needed, voir Permissions.
  • La première fois, trois cartes expliquent le fonctionnement du plugin. Clique sur Start.
Premier lancement, trois cartes expliquent le fonctionnement du plugin
Affiché une fois, à la première ouverture. Clique sur Start.

1. Source

Sous Source collection, choisis la collection à traduire. Sa carte indique le nombre d’items et combien de champs peuvent être traduits. Quand des champs ne peuvent pas être copiés, surtout des références vers d’autres collections, une étiquette comme 1 field not copied le signale, et son survol donne leurs noms (voir Ce qui est traduit).

Sous Target language, clique sur une langue de la grille, ou tape dans Search a language…. Les langues déjà utilisées sont proposées sous Previously used. Clique ensuite sur Continue.

Onglet Source, collection Blog choisie, Français sélectionné dans la grille où chaque langue porte son propre nom
Blog compte 6 items et 3 champs traduisibles. Deux champs ne sont pas copiés.

2. Method

Instant translation est sélectionnée par défaut. Les trois autres méthodes sont sous Advanced, voir Choisir une méthode. Sous chaque méthode qui envoie tes textes quelque part, une courte mention dit où ils vont. Rien ne part avant ton clic. Clique sur Continue.

Onglet Method, Instant translation sélectionnée, les autres méthodes sous Advanced

3. Create

Le récapitulatif affiche par exemple 6 items → French et 3 fields via instant AI. En gratuit, une mention précise This uses your free run, one collection in one language.

La liste Fields montre chaque champ traduisible, tous cochés. Décoche un champ pour le laisser de côté, voir Exclure des champs. Sous la liste, Translate slugs est désactivée par défaut, voir Slugs.

Si la source a des champs que le plugin ne sait pas copier, il les nomme sous Fields not copied avant ton clic.

Le bouton du bas dépend de la méthode. Il affiche Translate 6 items → pour Instant et DeepL, Generate prompt → pour ta propre IA, et Create 6 items → pour la méthode manuelle.

Onglet Create avec le récapitulatif, la liste Fields not copied (Related, Video embed), la mention du run gratuit et le début de la liste des champs

Pendant la traduction

Le plugin lit la source, traduit les textes, écrit les champs, puis écrit les items un par un. La barre suit chaque phase, par exemple Translating 12 texts (about 9k characters) puis 3 of 6 items written. Garde Framer ouvert sur le projet.

Le plugin traduit tout d’abord et n’écrit qu’ensuite. Si la traduction échoue, rien n’est écrit et la collection reste telle qu’elle était.

Si tu fermes le plugin pendant la traduction, Framer te prévient d’abord avec A translation is running. If you close now, it stops before the end. Annule et la traduction va jusqu’au bout.

Traduction en cours avec sa barre de progression

À la fin

L’écran affiche Collection translated et le nombre d’items désormais dans la langue, par exemple 6 items are now in French (fr). Une étiquette compte les champs repris, une autre les champs non copiés s’il y en a, nommés plus bas sous Fields not copied. Le plugin donne aussi le nom de la collection, par exemple In your CMS it's called “Blog FR”. De là, tu peux ouvrir Edit items in the plugin pour relire les items, voir Modifier les items.

Collection translated, 6 items en français, 6 champs repris, 2 champs non copiés, le nom de la collection dans le CMS et la liste Fields not copied

Dans le CMS, la nouvelle collection se range à côté des autres, marquée comme gérée par CMS Translator. Elle garde le nom que tu lui as donné dans la fenêtre de Framer. Le plugin ne peut pas la renommer, nomme donc chaque collection traduite au moment où Framer la crée. Si tu as gardé le nom par défaut, l’écran de fin te le rappelle.

En faire une vraie page

Une collection seule n’apparaît pas sur ton site. L’écran de fin liste les trois étapes sous Then turn it into a real page.

  1. Create a new page. Dans le panneau Pages de Framer, ajoute la page qui accueillera les items traduits, /fr/blog par exemple.
  2. Bind this collection inside. Sur cette page, pose une Collection View et choisis la nouvelle collection traduite. Pour les pages d’article, crée une page CMS comme /fr/blog/:slug dont la source est la collection traduite. Chaque item a alors sa propre page.
  3. Publish your site depuis le menu Publish de Framer.
Les trois étapes pour en faire une vraie page, et la carte Sync

Tu peux dupliquer ta page blog et ta page d’article existantes, placer leur chemin sous /fr, puis basculer leur collection sur la collection traduite. La mise en page reste identique.

Traduire

Choisir une méthode

Les quatre méthodes créent la même collection traduite. Elles diffèrent par qui traduit.

MéthodeQui traduitCe qu’il te faut
Instant translationUne IA, dans le pluginRien
Translate with DeepLDeepLTa clé API DeepL
Use my own AIChatGPT, Claude, Gemini ou l’IA que tu utilisesUn copier-coller
Just create the structureToi, dans l’éditeur du pluginRien
Les quatre méthodes, Use my own AI sélectionnée, Just create the structure en dessous

Instant translation

Instant est la méthode par défaut. Tu cliques une fois et il n’y a aucune clé à régler. Les textes de la collection source partent vers notre serveur (api.patchou.cloud), qui les fait traduire par Claude Haiku d’Anthropic. Le plugin le précise sous la méthode.

Chaque texte part avec sa provenance, le nom de la collection, le nom du champ et l’item auquel il appartient, pour qu’un libellé court ne soit pas traduit à l’aveugle. Les consignes demandent aussi les règles d’écriture de la langue cible, la casse de phrase en français ou en espagnol, les noms en majuscule en allemand, les élisions justes en français. Le prompt du copier-coller porte le même contexte et les mêmes règles.

  • En gratuit, Instant couvre une collection d’environ 15 000 caractères au plus, envoyée en un seul lot.
  • En PRO, Instant traite les grosses collections en plusieurs lots, jusqu’à 500 000 caractères par mois. Au-delà, passe par DeepL avec ta clé ou par le copier-coller jusqu’au mois suivant.

Si la collection dépasse le run gratuit, le plugin te le dit sur l’onglet Create, avant le clic. Il affiche d’abord Checking the size for the free run…, puis Too large for the free run avec deux sorties, Use DeepL with my key et Copy-paste into my own AI. Ton run gratuit n’est pas consommé dans ce cas.

Translate with DeepL

  1. Crée une clé API dans ton compte DeepL. Le lien Get a key ouvre la bonne page. Les offres API Free et Pro marchent toutes les deux.
  2. Sous Advanced, clique sur Translate with DeepL et colle la clé dans DeepL API Key.
  3. Le plugin la vérifie tout seul et affiche Key valid · 482,000 chars left (avec ton propre chiffre).
  4. Clique sur Continue, puis sur Translate 6 items →.
Carte DeepL ouverte avec le champ DeepL API Key et le lien Get a key

Les nouveaux comptes DeepL API Free reçoivent une fois un crédit de 1 000 000 de caractères, qui ne se renouvelle pas. Les textes partent chez DeepL avec ta clé, via notre relais (deepl.patchou.cloud), parce que DeepL bloque les appels faits depuis un navigateur. La clé reste dans ton navigateur et n’est jamais enregistrée dans le projet, tes collaborateurs ne la voient donc pas.

Use my own AI

  1. Sous Advanced, clique sur Use my own AI, puis sur Continue et Generate prompt →.
  2. Clique sur Copy prompt et colle-le dans ChatGPT, Claude ou Gemini.
  3. Copie toute la réponse et colle-la dans la zone sous Paste the AI response. Le plugin attend le JSON numéroté que renvoie l’IA, tel quel.
  4. Clique sur Apply translations →.
Copier le prompt, puis coller la réponse de l’IA, avant Apply translations

Une grosse collection est découpée en plusieurs parties, pour que chaque prompt reste dans ce qu’une IA accepte. Des onglets affichent Part 1, Part 2 et ainsi de suite. Copie chaque partie avec Copy prompt · Part 1/3, colle chaque réponse, passe à la suite avec Next: Part 2/3 →, et le bouton final compte les parties remplies, Apply translations (3/3) →. Avec cette méthode, rien ne quitte Framer, c’est toi qui transportes les textes.

Just create the structure

Le plugin crée la collection traduite avec le contenu source copié dedans, puis ouvre l’éditeur pour que tu réécrives chaque item à la main. Clique sur la carte, puis sur Continue et Create 6 items →. Utile quand un traducteur te livre les textes, ou pour une langue que tu écris toi-même. Rien n’est envoyé nulle part.

Langues

54 langues sont intégrées, chacune avec son drapeau et son code ISO (fr, de, pt-BR et ainsi de suite). Tape dans Search a language… pour en trouver une. Une collection traduite contient une langue. Pour trois langues, crée trois collections à partir de la même source.

Langues personnalisées

Pour une langue absente de la grille, clique sur Custom, tape son code ISO et son nom (th et Thai, par exemple), puis clique sur Add custom language →. Les langues personnalisées sont gratuites. Instant et le copier-coller acceptent n’importe quelle langue. DeepL ne traduit que les langues qu’il prend en charge.

En gratuit

Ton run gratuit couvre une collection dans une langue, quelle que soit la langue choisie, intégrée ou personnalisée.

Ce qui est traduit, copié ou ignoré

ChampCe qui se passe
TexteTraduit
Texte richeTraduit, mise en forme gardée
Texte alternatif des imagesTraduit, l’image elle-même est copiée
SlugCopié, ou traduit si Translate slugs est activée
Nombre, date, interrupteur, couleur, lien, image, fichier, optionCopiés tels quels
Référence de collection, multi-référenceIgnorés
GalerieCopiée, le texte alternatif de chaque image traduit

Texte riche

Titres, gras, italique, liens et listes gardent leurs balises. Chaque paragraphe est traduit d’un bloc, les phrases restent donc entières. Les images placées dans le texte riche restent à leur place.

Brouillons

Un item en brouillon dans la source reste en brouillon dans la collection traduite, il n’y est donc pas publié non plus.

Champs non copiés

Les références vers d’autres collections, et les rares types de champ que le plugin ne sait pas écrire, restent seulement dans la source. Le plugin les nomme avant le lancement et de nouveau à la fin. La carte de la source affiche une étiquette comme 2 fields not copied, et l’onglet Create comme l’écran de fin les listent sous Fields not copied. Une référence pointe vers des items d’une autre collection, dans la langue source, le plugin ne peut donc pas choisir à ta place le bon item traduit. Si tu en as besoin, ajoute le champ à la collection traduite après l’avoir détachée.

Identifiants des items

Chaque item traduit garde l’identifiant de son item source. C’est ainsi que la Sync sait quel item traduit correspond à quel item source.

Exclure des champs

Sur l’onglet Create, la liste Fields montre chaque champ traduisible avec son type (Text ou Rich text) et un compteur, 3 of 3 included. Décoche un champ pour le sortir de la traduction. Un nom d’auteur ou un code produit, par exemple.

Un champ exclu est copié tel quel, sans traduction. Ton choix est enregistré avec la collection, et la Sync le respecte ensuite.

Si tu décoches tous les champs, ou si les champs cochés ne contiennent pas de texte, le plugin affiche Nothing to translate in the selected fields et propose Copy 6 items as they are. Reviens en arrière pour cocher d’autres champs, ou copie-les.

Slugs

Le slug est la fin de l’adresse de l’item, my-article dans /blog/my-article. L’option Translate slugs de l’onglet Create est désactivée par défaut.

Option Translate slugs, désactivée, avec sa note sur le Language Switcher

Désactivée, par défaut

Chaque item traduit garde le slug de son item source. Si ta page d’article traduite est en /fr/blog/:slug, la version française de /blog/my-article est /fr/blog/my-article.

C’est ce qu’attend le Language Switcher de Page Translator. Quand un visiteur change de langue, il garde le slug et remplace le préfixe de langue. Avec des slugs inchangés, il tombe sur le bon article.

Activée

Les slugs sont traduits avec le reste, my-article devient mon-article. Tous les alphabets sont gardés (cyrillique, arabe, chinois, thaï et ainsi de suite). Quand deux items finissent avec le même slug, le plugin ajoute -2, -3 pour que chaque slug reste unique.

Avec des slugs traduits, le Language Switcher de Page Translator envoie le visiteur de /blog/my-article vers /fr/blog/my-article, qui n’existe pas, et il tombe sur une 404. Laisse l’option désactivée si tu utilises le sélecteur sur tes pages d’article.

Tu peux toujours modifier un slug à la main dans l’éditeur.

Après la traduction

Synchroniser quand la source change (PRO)

Quand tu ajoutes, modifies ou supprimes des items dans la collection source, la Sync met la collection traduite à jour. Elle ne traduit que ce qui a changé et garde les retouches que tu as faites à la main.

  1. Dans le CMS, ouvre la collection traduite et clique sur Sync. Framer ouvre le plugin sur l’écran Re-sync a translated collection.
  2. Le plugin affiche la source, la langue cible, le nombre d’items et la dernière sync, puis What this sync will do, avant tout lancement.
  3. Choisis la méthode, Instant ou DeepL.
  4. Clique sur Sync.
Une collection traduite ouverte dans le CMS de Framer, avec son bouton Sync

What this sync will do

L’aperçu liste chaque type de changement avec son nombre, par exemple

  • 1 new item will be translated
  • 2 changed items will be re-translated
  • 1 item you edited by hand stays as you edited it
  • 1 item deleted from the source will be removed
  • 5 items have not changed
Aperçu de Sync avec des items modifiés, un item retouché et l’option Replace my hand edits

Le plugin garde une empreinte de chaque item et de chaque champ. Un item dont la source a changé est retraduit. Un champ que tu as réécrit dans la collection traduite est protégé, même si sa source a changé.

Replace my hand edits

Quand des items protégés ont une source modifiée, l’option Replace my hand edits apparaît. Active-la pour retraduire ces items et remplacer tes retouches. L’aperçu se met à jour avant ton clic.

Re-translate everything

Re-translate everything retraduit chaque item depuis la source. Le plugin demande d’abord confirmation, Re-translate all 6 items?. Les retouches faites dans la collection traduite sont remplacées, et chaque item compte dans ton quota de traduction.

Confirmation avant Re-translate everything

À la fin

L’écran affiche Sync complete avec les compteurs Added, Re-translated, Kept (hand edits) et Removed. Si rien n’a changé dans la source, le bouton affiche Nothing to sync, ou le plugin dit Already up to date. Rien n’est écrit dans les deux cas.

Sync complete avec les compteurs Added, Re-translated et Removed

Première Sync après la mise à jour depuis la 2.3

Une collection créée avec la version 2.3 ou avant n’a pas encore d’empreintes. Sa première Sync affiche First sync with this version. Le plugin note l’état actuel des items, qui gardent leur traduction, et par la suite la Sync ne traduit que ce qui change. Les items ajoutés ou supprimés sont quand même traités dès cette première Sync.

First sync with this version, puis les méthodes Instant et DeepL et le bouton Sync
Une collection créée avec la version 2.3. La première Sync note son état actuel.

Si tu as modifié des items existants dans la source depuis ta dernière sync, cette première Sync ne peut pas le voir. Lance Re-translate everything une fois.

À la Sync, aussi

  • La Sync marche avec Instant ou DeepL. Le copier-coller et la méthode manuelle ne sont pas proposés à la Sync. Avec DeepL et sans clé enregistrée dans ce navigateur, le bouton affiche Add DeepL key → et te la demande.
  • Les champs exclus à la création restent exclus.
  • Ton glossaire et, avec Instant, ton contexte s’appliquent comme à la première traduction.
  • Si la traduction échoue, la collection n’est pas modifiée (Your translated collection was not changed.).
  • En gratuit, l’écran de Sync montre quand même l’aperçu, avec l’offre Sync is a PRO feature.
Écran de Sync en gratuit, l’aperçu reste visible

Modifier les items

L’éditeur te permet de corriger n’importe quel item traduit sans quitter le plugin. Il est gratuit. Tu l’ouvres depuis Edit items in the plugin sur l’écran de fin, depuis la carte d’une collection existante, ou depuis Edit items in plugin → sur l’écran de Sync.

Edit items sous Manage your translated collection, un tableau avec le slug et le titre de chaque item
  • Chaque item est une ligne, chaque champ une colonne. Clique sur une cellule pour la modifier. Textes, textes riches, slugs et images se modifient.
  • Pour une image, clique dessus pour la remplacer ou en téléverser une, colle une adresse à la place, ou retire-la.
  • Cherche avec Search by slug or content…. Le bouton d’à côté trie les items du plus récent au plus ancien, ou l’inverse.
  • La colonne Status indique si un item est en Draft ou Live.
  • Clique sur Save all edits pour écrire tes changements dans la collection.

Un slug vide, ou deux items avec le même slug, sont refusés, et le plugin affiche Nothing was saved. Corrige le slug et enregistre à nouveau.

Si tu quittes l’éditeur ou fermes le plugin avec des modifications non enregistrées, il demande Leave without saving?. Clique sur Keep editing, ou sur Leave and lose edits.

Avertissement Leave without saving? dans l’éditeur

Les modifications faites ici, ou directement dans le CMS de Framer, comptent comme des retouches. La Sync les protège, voir Synchroniser.

Reconfigurer ou détacher

Ouvre le plugin sur une collection qu’il a déjà créée (depuis le CMS, sur cette collection) et tu obtiens quatre cartes sous le titre Manage your translated collection.

Manage your translated collection, avec Edit items, Sync, Reconfigure et Detach
  • Edit items in the plugin ouvre l’éditeur.
  • Sync from the source rappelle que la Sync se lance depuis le CMS. In the CMS, open this collection and click Sync.
  • Reconfigure te laisse rechoisir la source, la langue cible ou la méthode, sous le titre Reconfigure your translated collection. Les items sont réécrits à l’enregistrement, avec la même règle que la première fois. Le plugin traduit d’abord et n’écrit que si la traduction a réussi. En gratuit, une fois ton run gratuit utilisé, un nouveau run demande PRO.
  • Detach for full Framer freedom explique comment en faire une collection ordinaire.

Détacher une collection

Dans le panneau CMS, clique sur le badge CMS Translator de la collection, puis sur Detach from plugin. La collection devient une collection CMS ordinaire. Tu peux y ajouter des champs ou des références, et la modifier librement. La Sync n’est plus possible dessus, et le plugin ne la gère plus.

Glossaire

Le glossaire protège tes noms de marque et de produit d’une traduction à l’autre. Ouvre le menu (le bouton ••• en haut à droite), puis Glossary. Tape un terme dans Add a term… et valide avec le bouton plus.

Glossaire vide avec le champ Add a term

Chaque terme a une règle.

  • Keep as-is laisse le terme intact dans toutes les langues.
  • Custom for this language impose la traduction voulue pour la langue cible. Choisis d’abord une langue cible sur l’onglet Source, sinon il n’y a rien à remplir. Laisse la case vide pour garder l’original.

Le glossaire est gratuit. Il s’applique à Instant, DeepL et au copier-coller, à la première traduction comme à la Sync. Il est enregistré dans le projet, tes collaborateurs le partagent donc.

Contexte et ton (PRO)

Sur l’onglet Method, la carte Instant a un bouton Add context / tone. Il ouvre Translation context & tone, une zone de 600 caractères au plus où tu décris le ton voulu, par exemple « Ton décontracté. Garder les noms de produits en anglais. » Clique sur Save.

Fenêtre Translation context & tone, 600 caractères au plus

L’IA le suit à chaque traduction Instant de ce projet, Sync comprise. Le contexte est enregistré dans le projet. Il ne s’applique qu’à Instant. En gratuit, le bouton porte un cadenas et ouvre l’offre PRO.

Offres et licence

Gratuit et PRO

GratuitPRO, 29 € une fois
Collections traduites1 collection dans 1 langue, par projetToutes les collections, toutes les langues
Instant translationUne collection d’environ 15 000 caractères au plusGrosses collections, jusqu’à 500 000 caractères par mois, puis ta clé DeepL
DeepL, copier-coller, manuelOui, pour ta collection gratuite, quelle que soit sa tailleOui
Sync et Re-translate everythingNonOui
Contexte et tonNonOui
Glossaire, choix des champs, éditeur, langues personnaliséesOuiOui

PRO se paie une fois, sans abonnement. Les 500 000 caractères Instant se comptent par clé de licence et par mois civil. Le Translation Pack, à 39 €, te donne Page Translator PRO et CMS Translator PRO avec une clé chacun, chaque plugin a donc son propre compteur Instant.

Pour comparer, Framer Localization coûte 20 € par mois et par langue en facturation annuelle (25 € en mensuel). Pour quatre langues, cela fait environ 960 € par an. CMS Translator PRO coûte 19 € une fois et marche sur tous les plans Framer.

Une fois ta collection gratuite créée, le plugin affiche Your free translation is used quand tu en lances une nouvelle, avec l’offre PRO.

Your free translation is used, l’offre PRO avec le champ de clé de licence en dessous

Acheter PRO et activer ta clé

Acheter

Chaque écran PRO du plugin propose la même offre. Tu y arrives par le badge FREE en haut à droite, le cadenas du contexte, l’écran de Sync ou une limite du gratuit. Clique sur Unlock PRO · €29 once, ou sur Get both plugins (Page + CMS) · €39 pour le Pack. Le paiement se fait sur Polar, dans ton navigateur. Polar t’envoie ta clé de licence par e-mail.

Offre PRO ouverte depuis le badge FREE, avec le champ de clé de licence

Activer

  1. Ouvre CMS Translator depuis le CMS.
  2. Clique sur le badge FREE en haut à droite.
  3. Colle ta clé dans Paste your license key, sous Already have a key?.
  4. Clique sur Activate.
  5. Le plugin affiche You're PRO et Everything below is yours now. Clique sur Let's go. Le badge affiche maintenant PRO.
Écran You’re PRO après l’activation

Avec le Translation Pack, colle ici la clé de CMS Translator, et celle de Page Translator dans Page Translator.

Retrouver ou retirer ta clé

En PRO, une barre PRO active s’affiche en haut du plugin. Clique dessus pour voir ta clé, en partie masquée, avec deux liens.

Barre PRO active ouverte, avec la clé en partie masquée, Lost your key? et Remove license
  • Lost your key? ouvre l’espace client Polar. Connecte-toi avec l’adresse e-mail du paiement, ta clé s’y trouve. Le même lien est à côté du champ de clé, côté gratuit.
  • Remove license désactive la clé dans ce navigateur et libère l’activation.

La clé est enregistrée dans le navigateur où tu l’actives, pas dans le projet Framer. Un nouveau navigateur, l’application Framer pour ordinateur ou des données de navigation effacées demandent de la coller à nouveau. Une clé a un nombre limité d’activations. Une fois la limite atteinte, retires-en une depuis un navigateur que tu n’utilises plus, ou depuis ton compte Polar.

Aide

Permissions

Le plugin vérifie tes permissions Framer à l’ouverture, puis avant chaque écriture. Si ton rôle ne peut pas modifier le CMS du projet, il affiche Edit access needed, grise les boutons qui écriraient, et ajoute You can look around, nothing will be written.

Edit access needed, on peut parcourir le plugin mais il n’écrit rien

Demande l’accès en modification à un admin du projet, puis rouvre le plugin. Si Framer refuse quand même un changement, le plugin affiche Framer refused the change et Nothing was written.

Données et services

Rien ne quitte Framer tant que tu ne lances pas une traduction, une vérification de licence ou une Sync, et rien n’est écrit dans ton projet avant ton clic. Le plugin affiche le même résumé dans le menu, sous Data and services.

Data and services ouvert dans le menu
  • Instant envoie les textes des champs restés cochés (et les slugs si Translate slugs est activée), les termes de ton glossaire et, en PRO, ton contexte à notre serveur (api.patchou.cloud), qui les fait traduire par Claude Haiku d’Anthropic. Pour qu’une valeur courte ne soit pas traduite à l’aveugle, la requête porte aussi le nom de la collection, les noms des champs, un libellé par item (son premier champ texte non vide, coupé à 80 caractères, même si ce champ est décoché, ou à défaut son slug) et, pour un champ court qui a peu de lignes dans le lot, jusqu’à quatre autres valeurs de ce champ. Elle envoie aussi les codes de langue, l’identifiant d’installation aléatoire et, en PRO, ta clé de licence. Le serveur ne garde aucun texte. À chaque appel, il note l’heure, l’identifiant d’installation, gratuit ou PRO, le nombre de caractères et de tokens, le coût et le statut. Il garde aussi les identifiants d’installation qui ont utilisé leur run gratuit, un nombre de requêtes par jour et par adresse IP, et le nombre de caractères du mois de chaque clé de licence.
  • DeepL envoie les textes à DeepL avec ta propre clé, via notre relais (deepl.patchou.cloud), parce que DeepL bloque les appels faits depuis un navigateur. Le relais ne garde ni textes ni clés.
  • Le copier-coller et le manuel n’envoient rien. Tu copies le prompt et colles la réponse toi-même.
  • La licence est vérifiée en envoyant ta clé à notre serveur, qui interroge Polar, là où tu l’as achetée.
  • Les événements d’usage (étapes, nombres, erreurs) partent vers PostHog via notre serveur, avec un identifiant d’installation aléatoire, ton adresse IP pour une localisation approximative et ton type de navigateur. Jamais le contenu de tes collections.

Ta clé DeepL et ta clé de licence restent dans ce navigateur. Dans ton projet, le plugin écrit la collection traduite et ses réglages (source, langue, méthode), et dans les données du projet le glossaire, le contexte et la marque indiquant que le run gratuit a servi.

Dépannage

Je ne trouve pas le plugin dans le CMS

Installe-le d’abord depuis sa page Marketplace. Puis, dans le CMS, clique sur + Add Collection. Les plugins de collection installés sont listés dans ce menu.

« CMS Translator opens from the CMS »

Tu as ouvert le plugin depuis le canvas ou la liste des plugins. Il n’écrit rien à cet endroit et montre le chemin, Open the CMS, Click + Add Collection, Pick CMS Translator. Clique sur Got it, close et ouvre-le depuis le CMS. Le même écran liste tes collections traduites.

CMS Translator opens from the CMS, l’écran affiché quand le plugin est ouvert depuis le canvas, avec l’étape où Framer demande un nom

« Open the plugin from the CMS »

L’action tentée ne marche que sur une collection créée avec CMS Translator. Ouvre le plugin depuis + Add Collection pour en créer une, ou depuis le bouton Sync d’une collection traduite.

« No CMS collections yet »

Le projet n’a aucune collection à traduire. Crées-en une dans le CMS (+ Add Collection, puis New), ajoute des items, puis rouvre CMS Translator.

No CMS collections yet

« Nothing to translate »

La collection source n’a encore aucun item. Ajoutes-en, puis relance le plugin. Rien n’a été écrit.

« Nothing to translate in the selected fields »

Les champs restés cochés ne contiennent pas de texte. Reviens en arrière pour cocher d’autres champs, ou clique sur Copy 6 items as they are.

L’onglet Method ou Create est verrouillé

Choisis d’abord une collection source et une langue cible. Avec DeepL, l’onglet Create attend aussi une clé valide.

« Too large for the free run »

La collection demande plusieurs lots Instant et le run gratuit n’en couvre qu’un. Clique sur Use DeepL with my key ou sur Copy-paste into my own AI, sans limite de taille pour ta collection gratuite, ou débloque PRO. Ton run gratuit reste disponible.

« Your free translation is used »

Ce projet a déjà sa collection gratuite. Une deuxième collection, une deuxième langue ou un nouveau run demandent PRO. Le run Instant gratuit se compte aussi une fois par installation du plugin, Instant peut donc le refuser dans un nouveau projet si tu l’as déjà utilisé.

« DeepL refuses this key »

Vérifie que c’est bien une clé API de ton compte DeepL (API Free ou API Pro), copiée en entier, sans espace. Les clés DeepL font en général 36 caractères ou plus. Ou traduis avec Instant, qui ne demande pas de clé.

« DeepL quota reached »

Ta clé DeepL n’a plus de caractères ce mois-ci. Traduis avec Instant ou le copier-coller, ou relève la limite dans ton compte DeepL.

« Monthly Instant limit reached »

PRO comprend 500 000 caractères Instant par mois. Passe par DeepL avec ta clé ou par le copier-coller jusqu’au mois suivant.

« Instant is unavailable »

Le service Instant est occupé. Clique sur Retry un peu plus tard, ou sur Change method pour passer à DeepL ou au copier-coller. Ta collection n’a pas été modifiée.

Instant is unavailable, avec Retry et Change method

« Free trial already used today »

Le run Instant gratuit a déjà servi aujourd’hui depuis ton réseau, ce qui arrive sur une connexion partagée de bureau ou un VPN, ou après plusieurs essais. Réessaie demain, prends le copier-coller ou DeepL tout de suite, ou débloque PRO. Ta collection n’a pas été modifiée.

« Too many requests »

Le service de traduction demande de ralentir. Attends une minute, puis réessaie. Ta collection n’a pas été modifiée.

« Connection lost »

Le service n’a pas répondu ou a mis trop de temps. Vérifie ta connexion, puis réessaie.

« The AI answer couldn't be read »

Des traductions manquent ou le format est faux. Avec Instant, clique sur Retry et il redemande. Avec le copier-coller, colle une nouvelle réponse de ton IA sans la retoucher, la réponse entière, bloc de code compris. Si l’IA ajoute toujours des commentaires, demande-lui de renvoyer seulement l’objet JSON.

La traduction a échoué et la collection semble inchangée

C’est voulu. Le plugin traduit tout avant d’écrire, un échec laisse donc la collection telle qu’elle était (Your translated collection was not changed.). Règle la cause et relance.

« Translation failed »

Un problème inattendu est survenu. Réessaie ou choisis une autre méthode. Si ça se reproduit, clique sur Contact support, qui copie l’adresse du support, et envoie le texte affiché sous Details.

Un champ de référence manque dans la collection traduite

Les champs de référence et de multi-référence sont ignorés, voir Ce qui est traduit. Détache la collection si tu dois en ajouter un à la main.

Une galerie manque

Les galeries sont copiées depuis la version 2.4, donc une collection traduite avec une version plus ancienne n’en a pas encore. À partir de la version 2.4.1, une Sync suffit. Elle ajoute les galeries et les descriptions d’images qui manquent et laisse le reste de la traduction tel quel, retouches comprises. En version 2.4.0, lance plutôt une fois Re-translate everything. Une galerie listée sous Fields not copied contient autre chose que des images et reste dans la source.

Des items n’apparaissent pas sur le site publié

Ils sont en brouillon dans la source, et un brouillon reste un brouillon dans la collection traduite. Sors-les du brouillon dans le CMS de Framer, sur la collection traduite, puis publie.

Le texte riche a changé d’allure

Les balises sont gardées et chaque paragraphe est traduit d’un bloc. Si une phrase sonne faux, corrige-la dans l’éditeur. La Sync garde ta correction.

Les images sont les mêmes que dans la source

C’est normal, les images sont copiées. Leur texte alternatif est traduit. Pour une image localisée, remplace-la dans l’éditeur.

« Two items use the slug… »

Chaque slug doit être unique, et un slug vide est refusé. Corrige le slug dans l’éditeur et enregistre à nouveau. Rien n’avait été enregistré.

Le sélecteur de langue mène à une 404

Tu as traduit les slugs. Le Language Switcher de Page Translator garde le slug quand il change de langue, il cherche donc un article qui n’existe pas. Reconfigure la collection avec Translate slugs désactivée, ou retire le sélecteur de tes pages d’article. Voir Slugs.

Les articles traduits donnent une 404

Vérifie que tu as créé une page CMS sous le préfixe de langue (/fr/blog/:slug), que sa collection est la collection traduite, et que tu as publié ensuite.

La Sync dit « Already up to date » alors que j’ai modifié un item

S’il s’agit de la première Sync d’une collection créée avec la 2.3 ou avant, le plugin n’avait pas d’empreintes et a noté l’état actuel. Lance Re-translate everything une fois. Ensuite, chaque modification est prise en compte.

La Sync n’a pas mis à jour un item modifié dans la source

Tu avais retouché cet item dans la collection traduite, la Sync a donc protégé ta retouche. Active Replace my hand edits pour le retraduire.

La Sync a écrasé ma retouche

Replace my hand edits était activée, ou tu as utilisé Re-translate everything. Les deux remplacent les retouches. Refais-la dans l’éditeur.

Le bouton Sync est grisé

En gratuit, la Sync demande PRO et le bouton affiche Upgrade to re-sync. Sans accès en modification, une mention le signale. Quand rien n’a changé, il affiche Nothing to sync.

« Sync unavailable »

Cette collection n’a pas été créée par CMS Translator, ou elle a été détachée, elle n’a donc pas de source à synchroniser. Crée une collection traduite depuis + Add Collection.

« Add your DeepL API key » à la Sync

Tu as choisi DeepL et aucune clé n’est enregistrée dans ce navigateur. Colle-la et clique sur Validate & continue, ou passe à Instant.

Les boutons sont grisés, « Edit access needed »

Ton rôle Framer ne peut pas modifier le CMS de ce projet. Demande l’accès en modification à un admin du projet, puis rouvre le plugin. Voir Permissions.

« Framer refused the change »

Framer a refusé l’écriture, en général pour une question de droits. Rien n’a été écrit. Vérifie ton accès, puis réessaie.

Le glossaire ou le contexte ne s’enregistre pas

Ton rôle ne peut pas enregistrer les réglages du plugin dans ce projet. Demande l’accès en modification à un admin du projet.

La langue voulue n’est pas dans la grille

Ajoute-la avec Custom, un code ISO et un nom. Traduis-la avec Instant ou le copier-coller.

La carte DeepL indique qu’il reste peu de caractères

Ton offre DeepL ne couvre peut-être pas toute la collection. Traduis avec Instant ou le copier-coller, ou ajoute du crédit chez DeepL.

« This key isn't valid »

Recopie la clé depuis l’e-mail de Polar, en entier. Si tu l’as perdue, voir Retrouver ou retirer ta clé.

« This is a Page Translator key »

Chaque plugin a sa propre clé, et une clé Page Translator ne débloque pas CMS Translator. La clé de CMS Translator commence par CMSTRAD. Le Translation Pack te donne les deux clés, colle chacune dans son plugin.

« This key reached its activation limit »

Retire la licence dans un navigateur que tu n’utilises plus (PRO active, puis Remove license), ou depuis ton compte Polar, puis réessaie.

« This key has been revoked », « disabled » ou « is no longer valid »

La clé ne marche plus, après un remboursement par exemple. Écris-moi si tu penses que c’est une erreur.

« Couldn't reach the license server »

Vérifie ta connexion et réessaie.

J’étais en PRO et le plugin affiche FREE

La clé est enregistrée par navigateur. Dans un nouveau navigateur, ou après avoir effacé tes données de navigation, colle-la à nouveau avec le badge FREE.

Ma collection traduite ne propose plus la Sync

Elle a été détachée. Une collection détachée est une collection ordinaire. Crée une nouvelle collection traduite depuis la source si tu veux retrouver la Sync.

Toujours bloqué

Ouvre le menu, clique sur Send debug report avec une courte note, et écris à pro.allali.ilies@gmail.com.

FAQ

Le plugin utilise-t-il les locales de Framer ?

Non. Il écrit une collection séparée par langue et ne touche jamais aux locales de Framer. Il marche sur tous les plans Framer, sans Framer Localization.

Et l’Auto Translate de Framer ?

Il fait partie de Framer Localization, l’option payante. CMS Translator ne l’utilise pas et n’en a pas besoin.

Ma collection source est-elle modifiée ?

Non. Le plugin se contente de la lire.

Que se passe-t-il si je désinstalle le plugin ?

Les collections traduites restent dans ton projet avec leurs items. La Sync ne marche plus tant que tu ne le réinstalles pas.

Puis-je modifier les items traduits ?

Oui, dans l’éditeur du plugin ou dans le CMS de Framer. La Sync garde tes retouches, sauf si tu choisis de les remplacer.

Qu’est-ce qui est partagé avec mes collaborateurs ?

Le glossaire, le contexte et les réglages de chaque collection traduite sont enregistrés dans le projet. Ta clé de licence et ta clé DeepL restent dans ton navigateur.

L’interface existe-t-elle en français ?

Oui. Le plugin est en anglais par défaut. Ouvre le menu, puis Language, pour passer en français, espagnol, portugais du Brésil, allemand ou japonais.

Et mes pages statiques ?

Page Translator les traduit. Le Translation Pack réunit les deux plugins pour 39 €.

Est-ce un abonnement ?

Non. PRO coûte 29 € une fois.

Puis-je être remboursé ?

Si PRO ne marche pas comme annoncé, demande un remboursement complet dans les 14 jours suivant l’achat. Écris à pro.allali.ilies@gmail.com avec ton numéro de commande ou l’adresse e-mail du paiement. Les collections traduites restent dans ton projet après la désinstallation, un remboursement couvre donc un défaut, pas un changement d’avis. Une fois remboursé, la clé est désactivée et la version gratuite continue de marcher. Politique de remboursement.

Support

Écris à pro.allali.ilies@gmail.com, ou envoie un message à @ilies-allali sur la Framer Community. Un rapport envoyé depuis le menu du plugin (Send debug report) m’aide à trouver le problème plus vite.