Open source

Claude Traducteur

Localisation statique du site — traduire un site construit en des dizaines de langues sous forme de véritables pages statiques, sans le restituer et sans casser Core Web Vitals. Gratuit, auto-hébergé, AGPL-3.0.
Aucun compte Aucune clé API de notre part Fonctionne également sur un modèle local

Voir toutes les fonctionnalités

C'est le pipeline qui fonctionne www.conveythis.com lui-même — un site Astro de 238 pages, en direct en 55 langues. Nous l'avons extrait, documenté tous les modes de défaillance qu'il nous a coûté de trouver et publié le tout. Ce n’est ni un essai ni un teaser : il n’y a pas de clé à acheter, pas de quota et pas de compte.

Deux décisions de conception

Comment ça fonctionne

Deux décisions le définissent. Tout d'abord, les traductions sont insérées dans le HTML construit par décalage d'octet et le document n'est jamais resérialisé à partir d'un DOM — donc CSS critique intégré, l'élément LCP, les hachages d'actifs et le width/height les attributs qui contiennent CLS restent tous intacts. C'est pourquoi les pages locales correspondent à la langue source sur Core Web Vitals plutôt que de simplement lui ressembler. Deuxièmement, l'unité de traduction est le bloc entier, et non le nœud de texte, car environ un cinquième des nœuds de texte d'un site typique sont divisés par un balisage en ligne et la traduction séparée des fragments brise la grammaire dans toute langue qui réorganise ou infléchit.

Le résultat est prouvé plutôt qu’affirmé : huit portes et un audit SEO exhaustif sur chaque page, dont une porte qui existe uniquement parce que les mesures de couverture sont structurellement aveugles aux bugs d’extraction.

Vérification

Est-ce que ça tient vraiment ?

C'est une question légitime, et elle est vérifiable plutôt que quelque chose pour laquelle vous devez nous croire sur parole. doctranslator.com/fr est un grand site Astro dont les pages françaises ont été construites par ce pipeline. Comparez-le à l'original anglais et le balisage est octet-identique:

2,743

balises, dans une séquence identique

2,031

attributs de classe, tous correspondants

+0.74%

poids de la page — le français est plus long

Rien de structurel n'a bougé, il n'y a donc rien que le navigateur puisse présenter différemment. Vérifiez-le vous-même — cela prend environ dix secondes :

coquille
curl -s https://doctranslator.com/   | grep -o 'class="[^"]*"' > en.txt
curl -s https://doctranslator.com/fr | grep -o 'class="[^"]*"' > fr.txt
diff en.txt fr.txt && echo "markup identical — only the text changed"

Et les scores

Source anglaiseFrançais, à partir de cet outilA11y / Meilleures pratiques / SEO
Bureau100100100 / 100 / 100
Mobile9898100 / 100 / 100

Scores de performance de PageSpeed Insights, mesurés le 25 août 2026. L'accessibilité, les meilleures pratiques et le référencement étaient au top à chaque exécution des deux pages, dans les deux stratégies.

Ce sont des médianes, délibérément. Les scores de Lighthouse bougent : cinq exécutions consécutives de la même page mobile anglaise ont renvoyé 98, 98, 88, 98, 98, avec une peinture la plus riche en contenu oscillant entre 1,8 s et 3,2 s. Il s’agit de la variance du réseau et du CDN plutôt que de la qualité de la page. Si vous mesurez une fois et obtenez 91, c'est pourquoi — exécutez-le plusieurs fois et comparez les deux langues l'une par rapport à l'autre plutôt que par rapport à un nombre sur une page marketing.

Et la langue

L'identité du balisage est mesurable. Si l'espagnol est un bien c'est une question différente, et jusqu'à la version 2.0, le pipeline n'avait pas de réponse — les tests vérifiaient les formes des requêtes et les échafaudages, et rien n'obtenait de traduction.

coquille
node scripts/i18n/tqa.mjs --lang es --dry      # sample size and cost, no API call
node scripts/i18n/tqa.mjs --lang es,fr,de     # scorecard + per-locale JSON
node scripts/i18n/tqa.mjs --lang es --repeat  # judge the same sample twice

Il évalue un échantillon stratifié sur la typologie d'erreur MQM à ses pondérations conventionnelles — mineur 1, majeur 5, critique 10 — et pondère l'échantillon en fonction de la fréquence à laquelle chaque chaîne apparaît, de sorte que l'en-tête que tout le monde lit compte pour plus qu'une note de bas de page unique. Trois choses empêchent le numéro d’être décoratif :

Le juge est un modèle différent du traducteur
Les modèles obtiennent généreusement leur propre résultat. Si aucune deuxième clé de fournisseur n'est configurée, elle utilise la même et l'indique, lors de l'exécution et dans le rapport.
L'échantillon est ensemencé et la variance est rapportée
Une graine reproduit exactement une partition ; --repeat note deux fois le même échantillon et imprime l'écart. Un numéro de qualité que personne ne peut redériver, cité sans son bruit, est un numéro marketing.
Une unité que le juge ne peut pas évaluer est exclue et n'est pas considérée comme propre
Une première version imprimait 100,00 sur 100 à partir d'un échantillon dont chaque unité n'avait pas réussi à analyser. Dans ce cas, elle refuse désormais de communiquer un score.

Lisez-le comme une comparaison — entre les lieux, entre les modèles, avant et après un changement rapide — et non comme une note. Il s’agit d’une évaluation par un modèle du travail d’un autre plutôt que d’une analyse humaine, et le rapport le dit à première vue.

Décision trois

La terminologie n'est pas un choix par phrase

Les chaînes identiques étaient toujours cohérentes — les unités sont saisies par un hachage du texte source, donc une étiquette de navigation traduite une fois est réutilisée sur chaque page et entre les exécutions. Ce que cela ne peut pas faire, c'est maintenir un mandat à l'intérieur de phrases variées: “Le tableau de bord” dans deux paragraphes différents contient deux hachages, deux lots, deux requêtes sans état et rien ne les compare.

glossaire.json
[
  { "source": "Acme",      "rule": "keep",      "matchCase": true },
  { "source": "Dashboard", "rule": "translate",
    "targets": { "es": "Panel de control", "de": "Übersicht" } }
]

matchCase est la réponse à une question qui nous a été posée directement : peut-elle dire Pomme l'entreprise de pomme le fruit ? Une liste plate de noms ne peut pas exprimer cela. Des règles complètes et sensibles à la casse le peuvent.

sourceespagnolpourquoi
Apple a annoncé un appareilApple annonce un dispositifmajuscule A — protégé, et maintenant vérifié
Une pomme par jourUna manzana al díaminuscule — traduit normalement
La compote de pommes est en venteLa compota está en ofertamot entier — ne correspond jamais à l'intérieur d'un mot plus long

La même version indique au modèle qu'est-ce qu'une chaîne. Il recevait le texte et rien d'autre, donc une étiquette de bouton et un paragraphe de corps étaient indiscernables — ce qui rendait inapplicable la propre instruction de l'invite de garder les étiquettes de bouton courtes. A <button>, un titre, une étiquette de formulaire et une méta description le disent désormais chacun.

Il n'exige délibérément pas l'impératif des boutons : l'interface utilisateur allemande préfère un nom verbal et le français l'infinitif, il demande donc la construction que cette langue met réellement sur un bouton. Les noms de marque que vous répertoriez déjà sont automatiquement intégrés en tant que règles de conservation sensibles à la casse, ce qui les place également sous une porte de vérification qui vérifie qu'ils ont survécu. Rien n'a vérifié cela auparavant.

Conventions locales

Les chiffres sont localisés. Les prix ne sont jamais convertis.

En écrivant 1,234.56 pour un lecteur allemand, c’est l’une des marques les plus visibles d’une traduction automatique. Les modèles ne sont pas fiables lors des conventions de séparation, il est donc demandé au modèle de laisser les nombres tranquilles et Intl les reformate ensuite, de manière déterministe.

sourcedevient
1,234.561.234,56of
1,234.561 234,56Ven
$55,00 $USfr — placement et espacement, pas la quantité
50%50 %fr — avec un espace insécable

Il formate. Il ne se convertit jamais.

aucune option de configuration pour cela

Un prix est un engagement commercial, et en convertir un à un taux intégré dans une version — obsolète le lendemain de sa rédaction — est la façon dont un outil de traduction commence à publier de mauvaises offres sur des marchés que personne ne surveille. Chaque montant monétaire trouvé est écrit dans un rapport, de sorte qu'un humain évalue délibérément chaque marché.

Une porte d'intégrité numérique confirme cela en échouant à la construction si un nombre valeur changements entre la source et la traduction. Un modèle qui expédie tranquillement $39 où la source a dit $49 passe tous les autres contrôles : balisage identique, espaces réservés correspondants, longueur plausible, espagnol courant.

Délibérément laissé tranquille : numéros de version, heures, adresses IP, dates ISO, numéros de téléphone et tout numéro non groupé — au cours du développement, un modèle gourmand s'est transformé 192.168.1.1 dans 1.921.681,1, et ce cas est désormais un test. Un résultat qui ressemble à un bug et qui ne l'est pas : l'espagnol ne regroupe pas les nombres à quatre chiffres, donc 1,234.50 est correct 1234,50 dans es et 1.234,50 dans de.

Routage honnête

De lequel avez-vous réellement besoin ?

La substitution statique et une couche d'exécution résolvent différents problèmes. Choisir le mauvais vous coûte un week-end, alors voici la répartition honnête.

Vous avez une version statique, le contenu change à une cadence de publication et vous souhaitez posséder entièrement le HTML.

Claude Traducteur

Gratuit, auto-hébergé, AGPL-3.0. Votre propre clé API, vos propres fichiers, pas de compte.

Voir sur GitHub →

Votre contenu change quotidiennement, vit dans un CMS, est généré par les utilisateurs ou se trouve derrière une connexion ou un paiement.

ConveyThis

Une couche d'exécution gérée. Aucune étape de construction à accrocher, aucune réexécution à chaque modification, un éditeur visuel et une révision humaine.

Voir les tarifs →

Ce dont vous avez besoin traduit, ce sont des documents plutôt que des pages — PDF, DOCX, XLSX, PPTX.

DocTranslator

Fichiers entiers, mise en page et tableaux conservés, 100+ langues.

Aller à DocTranslator →

Démarrage rapide

Installez-le

Référentiel

https://github.com/ConveyThis/claude-translator

AGPL-3.0 · Nœud ≥ 20 · une dépendance (parse5) · ouvert sur GitHub →

Vous avez besoin

  • Node.js 20 ou plus récent
  • Un site qui construit en HTML statique — il lit votre sortie de build, pas votre source
  • Une clé API pour le modèle que vous choisissez — ou aucun du tout, si vous en exécutez un localement

En tant que compétence Claude Code

Clonez-le dans votre répertoire de compétences, puis demandez à Claude de localiser le site. Il suit les instructions fournies, y compris les modes de défaillance qui nous coûtent de l'argent réel à trouver — et les règles pour savoir quand il s'agit du mauvais outil.

coquille
git clone https://github.com/ConveyThis/claude-translator.git \
  ~/.claude/skills/claude-translator

Dans n'importe quel projet

Une commande. init copie le pipeline dans scripts/i18n/, écrit une configuration, déclare parse5 et ajoute le dérivé i18n/ chemins vers votre .gitignore. Il n'écrase jamais rien sans --force, et il imprime chaque fichier qu'il a touché.

coquille
cd your-project
npx claude-translator init
npm install                       # parse5, the only dependency

Les scripts atterrissent dans votre référentiel plutôt que d'y rester node_modules exprès — ils résolvent les chemins du projet dans lequel ils se trouvent, ils sont suffisamment courts pour être lus et la licence existe pour que vous puissiez les modifier.

Installation sans npx
coquille
git clone https://github.com/ConveyThis/claude-translator.git
cp -r claude-translator/scripts  your-project/scripts/i18n
cp claude-translator/i18n.config.example.json your-project/i18n.config.json
cd your-project && npm install --save-dev parse5

Configurer

La plus petite configuration qui s'exécute. buildDir c'est là que votre générateur écrit du HTML ; baseUrl est votre origine canonique, pas de barre oblique finale.

i18n.config.json
{
  "buildDir": "dist",
  "baseUrl": "https://example.com",
  "provider": "anthropic",
  "glossary": "glossary.json",
  "locales": [
    { "hreflang": "es", "pathCode": "es", "nativeLabel": "Español" },
    { "hreflang": "de", "pathCode": "de", "nativeLabel": "Deutsch" }
  ]
}
coquille
echo "ANTHROPIC_API_KEY=your-key-here" >> .env   # and gitignore it

Exécutez-le

npm exécuter la constructionvotre build normal — langue source uniquement
scripts de nœuds/i18n/extract.mjstrouver chaque unité traduisible
scripts de nœuds/i18n/translate.mjs --lang es,frtraduire dans la mémoire
scripts de nœuds/i18n/build-locales.mjs --lang allécrire les pages localisées
scripts de nœud/i18n/verify.mjs --lang touthuit portes — sorties non nulles en cas d'échec
scripts de nœuds/i18n/audit-seo.mjscanoniques, hreflang, JSON-LD, plans de site
scripts de nœuds/i18n/tqa.mjs --lang es --dryfacultatif — score de qualité MQM, coût en premier

Déployez ensuite le répertoire de build exactement comme vous le déployez aujourd'hui — les pages localisées sont des fichiers ordinaires situés à côté de vos fichiers existants. Les options complètes, chaque mode de défaillance et le raisonnement derrière chaque décision de conception sont dans le LIREME.

Des modèles

Apportez votre propre modèle — y compris un modèle local

L'étape de traduction communique avec un modèle via un petit adaptateur, et trois sont livrés avec lui : Claude (par défaut), Gemini et tout point de terminaison compatible OpenAI. Ce dernier couvre la majeure partie du domaine — OpenAI, Azure, Groq, DeepSeek, Mistral, OpenRouter, Together, Fireworks— et il couvre également Ollama, LM Studio et vLLM.

Ce qui signifie que trois lignes de configuration exécutent l'intégralité du pipeline sur votre propre matériel :

i18n.config.json
{
  "provider": "openai",
  "apiBaseUrl": "http://localhost:11434/v1",
  "model": "qwen2.5:14b"
}

Pas de clé, pas de quota, et rien ne quitte la machine — ce qui compte si le contenu est confidentiel. Tout ce qui ne figure pas dans cette liste est un fichier adaptateur contenant deux fonctions.

Limites

Où s'arrête l'outil gratuit

Six limites réelles. Aucune d'entre elles n'est une fonctionnalité paralysée — elles correspondent à la forme de l'approche et les scripts vous indiquent quand vous en appuyez une au lieu d'échouer discrètement.

Hydratation côté client
Les îles et les charges utiles du framework s'affichent à nouveau dans le navigateur, via le code HTML substitué. L'extracteur compte les pages concernées afin que vous le sachiez en quelques secondes, et non après une exécution complète.
Des documents
Les PDF liés, DOCX et XLSX restent dans la langue source — le pipeline ne touche que HTML.
Baratte
La mémoire est indexée par hachage source, elle peut donc vous indiquer quelle part de votre site a changé depuis la dernière exécution. Un taux de désabonnement élevé signifie payer pour retraduire, à plusieurs reprises.
Édition d'une traduction
Recherchez le hachage dans le fichier mémoire, modifiez la chaîne, reconstruisez. Il n'y a pas d'éditeur, pas de réviseur et pas de flux de travail.
Volume
Vous payez directement votre propre fournisseur de modèle, à son tarif, avec votre propre clé — ou rien du tout, si vous exécutez le modèle vous-même.
Utilisation modifiée du réseau
AGPL-3.0 §13 vous oblige à publier des modifications si vous exécutez une copie modifiée en tant que service pour d'autres personnes. Son exécution sans modification, ou modifiée en interne, est illimitée.

Les quatre premiers sont ceux que les gens frappent réellement, et ils ont tous la même forme : quelque chose doit arriver après la construction, ce qu'un outil de construction ne peut pas faire. C'est à cela que sert le produit géré, et le plan gratuit c'est 5 000 mots sans carte, ce qui suffit pour savoir si cela aide. Vous n'en avez pas besoin pour utiliser quoi que ce soit sur cette page.

Attribution

Ce qu'il met sur vos pages

Les pages localisées portent un <meta name="generator"> balise et un commentaire HTML nommant ConveyThis — environ 150 octets, aucune demande, aucun script et aucun lien. C'est le même mécanisme qu'Astro, Hugo et WordPress utilisent. Deux clés de configuration le suppriment et rien dans le dépôt ne vérifie si vous l'avez fait.

Si vous préférez afficher un crédit visible, définissez credit.visibleLink à true et placez l'emplacement où vous le souhaitez sur la page. Rien ne vous est demandé pour cela et rien n'est donné en retour — cela existe parce que certaines personnes veulent créditer les outils qu'elles utilisent, et pour aucune autre raison.

Le lien de crédit est rel="nofollow", délibérément. Non pas parce qu'il est payant — ce n'est pas le cas — mais parce qu'il s'agit d'un lien qu'un script de construction ajouterait autrement sur chaque page d'un site, et les liens à l'échelle du site qui apparaissent via des outils plutôt que par choix éditorial sont la forme à laquelle s'adressent les conseils de Google en matière de schéma de liens. Cela vaut la peine d'avoir du trafic de référence, pas des backlinks — quiconque vous dit le contraire vous vend une pénalité.

Licence commerciale

Le code est AGPL-3.0. La localisation de vos propres sites et l'expédition de la sortie sont illimitées — la licence couvre le logiciel et non le HTML qu'il écrit. Ça ne mord que si tu cours un modifié copier en tant que service réseau pour d'autres personnes. Si c'est vous et que vous ne pouvez pas publier vos modifications, écrivez à [email protégé].

Des questions

Les questions que les gens posent réellement

Est-ce vraiment gratuit ? Quel est le piège ?
Il s’agit de l’ensemble du pipeline sous AGPL-3.0, et il n’y a pas de piège du type habituel. Vous n’avez besoin d’aucun compte ConveyThis, d’aucune clé de notre part et d’aucun quota. Nous l'avons construit pour localiser conveythis.com en 55 langues et avons publié ce que nous utilisons. Le coût honnête est que vous l’exécutez vous-même : vous payez votre propre fournisseur de modèles, vous hébergez la sortie et il n’y a pas de service d’assistance derrière.
Ai-je besoin d'un compte ConveyThis ?
Non. Rien dans l'outil ne vérifie l'utilisation d'un téléphone, d'un téléphone à la maison ou ne signale son utilisation. La seule trace de nous est une balise génératrice et un commentaire HTML dans les pages qu'elle écrit, et deux clés de configuration les suppriment.
Combien coûte réellement une course ?
Vous payez directement votre fournisseur de modèles. Par défaut (Claude Haiku 4.5), un site marketing de taille moyenne d'environ 150 000 mots sources uniques coûte environ 30 $ dans 20 langues. Le passage d'une clé de configuration à Gemini Flash Lite porte ce montant à environ 2,40 $. Le pointer vers un modèle sur votre propre machine le rend gratuit. La déduplication compte plus que le choix du fournisseur : les en-têtes, les pieds de page et la navigation répétés se réduisent à une unité chacun, ce qui réduit généralement la facture d'un ordre de grandeur.
Puis-je utiliser mon propre modèle ou l’exécuter complètement hors ligne ?
Oui. Les adaptateurs sont livrés pour Claude, Gemini et tout point de terminaison compatible OpenAI — qui couvre OpenAI, Azure, Groq, DeepSeek, Mistral, OpenRouter, Together et Fireworks, ainsi qu'Ollama, LM Studio et vLLM. Définissez apiBaseUrl sur votre serveur local et l'ensemble du pipeline s'exécute sur votre matériel sans clé ni demande quittant la machine. Cela est important lorsque le contenu est confidentiel. Tout ce qui ne figure pas dans cette liste est un fichier adaptateur contenant deux fonctions.
Les pages traduites seront-elles plus lentes que les originales ?
Non, et c’est sur cette décision de conception que repose l’ensemble du projet. Chaque page locale est la page source avec des plages d'octets insérées ; le document n'est jamais re-sérialisé à partir d'un DOM. Le CSS critique intégré, l'élément LCP, les hachages d'actifs et les attributs de largeur et de hauteur qui maintiennent le décalage de mise en page sont tous conservés intacts, de sorte que les pages locales correspondent à la langue source sur Core Web Vitals plutôt que de lui ressembler approximativement. L'attribution ajoute environ 150 octets et ne fait aucune demande réseau.
Est-ce que cela fonctionne avec mon framework ?
Tout ce qui émet du HTML statique : Astro, Next.js avec exportation de sortie, Hugo, Eleventy, Jekyll, Gatsby ou HTML manuscrit. Il lit votre sortie de build plutôt que votre source, donc le framework n'a généralement pas d'importance. Les notes par générateur dans references/adapting-generators.md couvrent les exceptions, l'hydratation étant la principale.
Qu'en est-il des composants React ou des îlots Astro qui s'hydratent ?
Ceux-ci s'affichent à nouveau dans le navigateur, par-dessus tout ce qui a été remplacé dans le HTML, de sorte que le texte revient à la langue source. La substitution statique ne peut pas les atteindre. L'extracteur compte les pages contenant une charge utile d'hydratation et vous l'indique avant de dépenser quoi que ce soit, afin que vous le sachiez en quelques secondes plutôt qu'après une exécution complète. Si la majeure partie de votre contenu se trouve à l’intérieur de composants hydratés, une couche d’exécution est le bon outil et ConveyThis l’est.
Peut-il garder ma terminologie cohérente et distinguer un nom de marque d’un mot ordinaire ?
Oui, depuis la version 2.0.0. Les chaînes identiques étaient toujours cohérentes car les unités sont saisies par un hachage du texte source, mais un terme à l'intérieur de phrases variables n'avait aucun mécanisme. Un fichier de glossaire épingle désormais les termes par lieu, et les règles peuvent être sensibles à la casse et à l'ensemble du mot : Apple, l'entreprise, est protégée pendant que Apple, le fruit, est traduit, et aucune des deux ne correspond à l'intérieur d'Applesauce. Les noms de marque que vous répertoriez déjà sont automatiquement intégrés et une porte de vérification vérifie qu'ils ont réellement survécu à la traduction, ce que rien ne faisait auparavant. Le modèle est également informé de ce qu'est chaque chaîne, de sorte qu'une étiquette de bouton, un en-tête et une méta description ne lui sont plus impossibles à distinguer.
Je l'utilise déjà. Qu'est-ce qui change lorsque je passe à la version 2.0.0 ?
Rien ne se retraduit. Les hachages unitaires sont calculés à partir du texte source seul, de sorte qu'aucune mémoire de traduction existante n'est invalidée, et cela a été vérifié par rapport à un élément avant la publication. Deux changements de comportement se produisent, et tous deux sont délibérés dans une version majeure : le formatage des numéros de paramètres régionaux est activé par défaut, donc une reconstruction reformate les numéros dans votre sortie, et une nouvelle porte d'intégrité numérique fait échouer la construction si un numéro a changé de valeur entre la source et la traduction. Une mise en garde qui mérite d'être clairement énoncée : les étapes ajoutées dans la version 2.0.0 n'ont pas été facturées en direct à grande échelle par rapport à un fournisseur hébergé. Le pipeline situé en dessous d'eux gère conveythis.com en 55 langues ; les ajouts ont été vérifiés hors ligne, avec des luminaires et un modèle local.
Puis-je corriger une traduction que je n'aime pas ?
Oui, à la main. Recherchez le hachage de chaîne dans i18n/tm/{lang}.json, modifiez le texte, reconstruisez. Il n'y a pas d'éditeur, pas de réviseur et pas de flux de travail d'approbation dans l'outil gratuit — c'est une véritable limite plutôt qu'une fonctionnalité paralysée. Si vous avez besoin d'un éditeur visuel ou d'un avis humain professionnel, c'est ce que propose le produit payant.
Que se passe-t-il lorsque je modifie une page ou que j'en ajoute une nouvelle ?
La mémoire de traduction est saisie par un hachage du texte source, donc une réexécution traduit uniquement ce qui a changé et réutilise tout le reste — généralement des centimes. Validez i18n/tm/{lang}.json ; c'est l'actif, et le supprimer signifie payer pour une retraduction complète. Si votre contenu change quotidiennement, l’arithmétique cesse de favoriser cette approche et l’outil vous indique le taux de désabonnement afin que vous puissiez le voir venir.
Les pages traduites seront-elles indexées par Google ?
Ce sont de vraies pages statiques, donc oui. Lisez ce qu'il fait comme corrigé plutôt que créé, car cette distinction est ce qui maintient le balisage identique en octets : il réécrit les valeurs sur les balises que votre modèle émet déjà. Chaque page locale est livrée avec la bonne langue et le bon répertoire HTML, un hreflang canonique, x-default et en langue source auto-référencé pointé vers l'original, og:url et og:locale, JSON-LD par locale avec le bon @id et inLanguage, et des liens internes préfixés par les paramètres régionaux. Votre propre modèle fournit le maillage hreflang complet et le plan du site ; l'audit SEO vérifie ensuite les deux sur chaque page plutôt que sur un échantillon et sort non nul afin de pouvoir lancer un déploiement.
Puis-je l'utiliser commercialement ? Que signifie AGPL-3.0 pour moi ?
La localisation de vos propres sites et l'expédition de la production sont illimitées, y compris pour les clients et y compris commercialement. La licence couvre le logiciel et non le code HTML qu'il écrit. L'article 13 ne s'applique que si vous exécutez une copie modifiée en tant que service réseau pour d'autres personnes, auquel cas vous devez publier vos modifications ou prendre une licence commerciale. LICENSING.md explique dans quel groupe vous appartenez ; presque tout le monde fait partie du groupe sans restriction.
L'attribution ConveyThis est-elle requise ?
Non. Chaque page localisée porte une balise méta génératrice et un commentaire HTML — environ 150 octets, aucune requête, aucun script et aucun lien. C'est le même mécanisme qu'Astro, Hugo et WordPress utilisent. Définir credit.generatorTag et credit.htmlComment sur false supprime les deux, et rien dans le code ne vérifie si vous l'avez fait. Un crédit visible est opt-in et séparé, et ne vous rapporte rien — il est là pour les personnes qui veulent créditer les outils qu'elles utilisent.
En quoi est-ce différent de ConveyThis lui-même ?
Ils résolvent différents problèmes. Cela produit des fichiers statiques au moment de la construction, qui nécessitent une construction pour s'accrocher et un contenu qui change à une cadence de publication. ConveyThis est une couche d'exécution gérée : pas d'étape de construction, pas de réexécution à chaque modification, un éditeur visuel, une traduction humaine et la prise en charge du CMS, du commerce électronique, du contenu généré par les utilisateurs et des pages derrière une connexion. Si vous avez une version statique et que vous souhaitez posséder le HTML, utilisez ceci. Si votre contenu change quotidiennement ou s'il n'y a pas de build à accrocher, utilisez le produit. Même entreprise dans tous les cas.
Prêt à commencer ?

La traduction, bien plus que la simple connaissance des langues, est un processus complexe.

En suivant nos conseils et en utilisant ConveyThis , vos pages traduites trouveront un écho auprès de votre public, se sentant natif de la langue cible.

Même si cela demande des efforts, le résultat est gratifiant. Si vous traduisez un site Web, ConveyThis peut vous faire gagner des heures grâce à la traduction automatique automatisée.

Commencez par ConveyThis sur notre forfait gratuit — aucune carte de crédit requise !