Tout site WordPress · WooCommerce · v0.8.6

Traduire
une fois. Servir
depuis un fichier.

Le contenu est traduit en arrière-plan au moment où vous le publiez. Les visiteurs lisent un dictionnaire compilé dans un fichier — pas d'API à la demande, pas de traduction déclenchée par le trafic.

/en/ English /es/ Español /de/ Deutsch /fr/ Français /it/ Italiano /nl/ Nederlands /pt-br/ Português do Brasil /ja/ 日本語 /sv/ Svenska /pl/ Polski
Tout site WordPress

Pas seulement
pour les magasins.

WooCommerce est optionnel. Un blog, un site d'entreprise, un portfolio ou une boutique — s'il fonctionne sur WordPress, il est traduit de la même manière : en arrière-plan, et servi depuis un fichier.

  • Blogs
  • Sites d'entreprise
  • Portefeuilles
  • Magazines
  • Pages d'atterrissage
  • Magasins en ligne

Pages et articles

Chaque page et article, avec leurs catégories et tags. Publiez ou éditez et le nouveau texte est traduit quelques secondes plus tard.

  • pt Sobre nós
  • en About us
  • es Sobre nosotros

Menus

L'en-tête, le pied de page et chaque menu construit dans Apparence → Menus.

  • pt Início Loja Contactos
  • en Home Shop Contact
  • es Inicio Tienda Contacto

Votre thème

Boutons, textes d'en-tête et de pied de page — lus d'une page de chaque modèle, donc les propres mots du thème sont également couverts.

  • pt Ler mais
  • en Read more
  • es Leer más

SEO

hreflang sur chaque page et le préfixe de langue conservé dans le canonique et og:url, donc aucune traduction n'est ignorée en tant que duplicata.

<link rel="canonical" href="https://example.com/en/about/">
<link rel="alternate" hreflang="pt" href="https://example.com/about/">
<link rel="alternate" hreflang="en" href="https://example.com/en/about/">
<link rel="alternate" hreflang="es" href="https://example.com/es/about/">
<meta property="og:url" content="https://example.com/en/about/">

Recherche et dates

Un visiteur recherchant dans sa langue trouve des résultats, et les dates suivent le format propre à chaque langue.

  • pt 12 de setembro de 2026
  • en September 12, 2026
  • es 12 de septiembre de 2026

Sitemap

Pas de deuxième sitemap à soumettre. Les pages traduites sont ajoutées au sitemap que Google connaît déjà — une entrée par page et langue, chacune répertoriant toutes ses versions linguistiques. Sans plugin SEO, le propre sitemap de WordPress obtient un sitemap par langue.

<url>
  <loc>https://example.com/en/about/</loc>
  <xhtml:link rel="alternate" hreflang="pt" href="https://example.com/about/"/>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about/"/>
  <xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/about/"/>
</url>

Cache de page

Chaque langue a sa propre URL, mise en cache séparément et purgée après chaque traduction.

  • pt /about/ Mis en cache
  • en /en/about/ Mis en cache
  • es /es/about/ Mis en cache
Fonctionne avec

SEO et sitemaps

  • Yoast SEO
  • Rank Math
  • Slim SEO
  • Sitemap WordPress
Fonctionne avec

Cache de page

  • WP-Optimize
  • LiteSpeed Cache
  • WP Rocket
  • W3 Total Cache
Fonctionne avec

Boutique

  • WooCommerce
  • Packs de traduction WordPress et WooCommerce officiels
Vous utilisez WooCommerce ? Le panier, le paiement et les e-mails de commande sont également couverts.
Conçu aussi pour les magasins

Les parties
que les autres laissent
en anglais.

Le panier, le passage à la caisse, les avis — là où une chaîne non traduite fait le plus mal, au moment où quelqu'un dépense de l'argent. Couvert de trois manières différentes, car elles proviennent de trois lieux distincts.

Panier et paiement

Couvre de trois façons

Les étiquettes proviennent du pack examiné par des humains de WooCommerce. Les noms de produits et de catégories viennent du dictionnaire, via l'API du magasin. Les noms d'expédition et de paiement sont collectés directement depuis WooCommerce.

Automatique

Et cela reste ainsi

Tout ce qui est publié ou enregistré est traduit de lui-même. L'ensemble du site est vérifié à nouveau une fois par semaine et après chaque mise à jour de thème ou de plugin. Une traduction révisée n'est jamais écrasée à nouveau par la machine.

SEO

Le plan du site que Google connaît

Une URL par langue avec hreflang alternates, dans le sitemap Yoast SEO, Rank Math ou Slim SEO. Le canonique garde le préfixe de langue, donc rien n'est perdu en tant que doublon.

Chaînes

Revue manuelle

Chaque traduction est listée avec une colonne "Où" pour le contexte. Corrigez-en une et elle est à vous pour de bon. Les chaînes échouées sont marquées et ne bloquent jamais le reste.

Mode d'enregistrement

Attraper ce qu'un crawl ne peut pas

Un panier avec des articles, un paiement retournant des erreurs, un coupon invalide. Naviguez en tant qu'administrateur avec ?pht_record=1 et ils sont enregistrés, sans coût pour aucun visiteur.

Mises à jour

Signé, de PixelHunter

De nouvelles versions apparaissent dans Extensions → Extensions installées comme n'importe quelle autre. Chaque package est signé avec une clé ed25519 ; un package échangé est refusé.

Cache de page

Purifié pour vous

Chaque langue est sa propre URL, donc tout cache le stocke séparément. Après une traduction, les pages modifiées sont purgées dans WP-Optimize, LiteSpeed Cache, WP Rocket et W3 Total Cache. Deux hooks couvrent le reste.

Rechercher

Fonctionne dans toutes les langues

Un visiteur en anglais cherchant "jacket" trouve "Casaco" : le plugin recherche le terme source. Le thème et le moteur de recherche ne le savent jamais.

Glossaire et ton

Vos mots, votre voix

Les noms de marque et termes fixes restent tels quels — une règle par ligne. Une phrase ou deux sur le ton de la marque accompagne chaque demande. Tout ce qui est à l'intérieur translate="no" ou <adresse> est laissé tel quel.

E-mails de commande · WooCommerce

L'e-mail arrive dans la langue du acheteur.

Quelqu'un achète en anglais. WooCommerce envoie "Votre commande a été payée" — et le plugin l'envoie en anglais : sujet, en-tête, noms de produits, méthode d'expédition et de paiement, la date, le texte que vous avez écrit pour le pied de page. La commande elle-même est sauvegardée dans la langue du magasin, donc l'administrateur, les factures et les rapports lisent une seule langue.

Ce que le magasin a écritpt-PT · le magasin
Subject: A sua encomenda #1042 foi paga
A sua encomenda foi paga

Olá Emma, obrigado pela sua compra. Já estamos a preparar a encomenda.

Vestido midi em linho — Preto, M× 149,00 €
Blusa de seda — Marfim, S× 278,00 €
Total132,00 €
Envio: Taxa fixa · 5,00 €Pagamento: Cartão de crédito12 de setembro de 2026

Loja Mariana · Rua das Flores 12, Lisboa · Responda a este email para falar connosco.

Ce que l'acheteur reçoiten · l'acheteur
Subject: Your order #1042 has been paid
Your order has been paid

Hi Emma, thank you for your purchase. We are already preparing your order.

Linen midi dress — Black, M× 149,00 €
Silk blouse — Ivory, S× 278,00 €
Total132,00 €
Shipping: Flat rate · 5,00 €Payment: Credit cardSeptember 12, 2026

Loja Mariana · Rua das Flores 12, Lisboa · Reply to this email to reach us.

Chaque e-mail après l'achat

Payé, complété, remboursé, une note du magasin — dans la langue de l'achat, de l'objet à l'en-tête.

Vos propres mots, traduits une fois

Objet, titre, contenu supplémentaire et pied de page que vous avez écrits dans WooCommerce → Les e-mails passent par le dictionnaire. Revoyez-les manuellement dans les chaînes.

Étiquettes gratuites, dates précises

"Sous-total", "Expédition", "Méthode de paiement" proviennent du pack examiné par des humains de WooCommerce. La date utilise le format propre à chaque langue — pas de "9 de septembre de 2026".

Le magasin lit une langue

Les commandes sont sauvegardées dans la langue source avec la langue de l'achat dans _pht_lang. Les e-mails à l'administrateur restent dans la langue du magasin.

Chaque état de commande

Traitement Payé Complété Remboursé Note du magasin Tout dans la langue de l'acheteur E-mails administratifs · langue du magasin
Le sélecteur de langue

N'importe quel coin.
Quatre formes.

Rien pour que le thème se batte. Quatre kilooctets de CSS, uniquement sur les pages où il s'affiche. Trois formes sont des liens simples sans zéro JavaScript. Les couleurs, la taille, les coins et l'ombre sont définis avec un aperçu en direct qui avertit en dessous de 4,5:1 — et chaque valeur est une variable CSS, donc un thème peut le redessiner sans !important.

ApparenceOnglet de commutation
Boîte#ffffff
Langue#1a1a1a
Actuel#1a1a1a
Survoler#dcdcde
Taille du texte14px
Coins8px
Ombredoux
Contraste 16.1:1 — respecte le WCAG AA. Le panneau avertit dès qu'une couleur de texte tombe sous 4.5:1.

Où cela apparaît

Modes
01Automatique — flotte dans le coin que vous choisissez, rien à toucher dans le thème. Il apparaît également dans le panier et à la caisse, où un visiteur dans la mauvaise langue a besoin d'un moyen de revenir.
02Manuel — placez-le vous-même avec [pht_switcher] ou pht_switcher() dans un modèle. Le flottant s'écarte sur cette page ; il n'y a jamais deux.
03Désactivé — caché. Noms ou codes, avec ou sans drapeaux emoji, c'est un commutateur dans les deux sens.

Barre de suggestion

Optionnel
01Un visiteur dont le navigateur parle une autre langue voit une petite barre en haut offrant sa version.
02Elle suggère, elle ne redirige jamais. Rediriger par la langue du navigateur casse le cache de la page, et Google déconseille cela.
03Elle s'affiche une fois. Choisir ou fermer les réponses pour de bon. Sur les pages traduites, l'offre « Traduire cette page » de son propre navigateur est silencieuse — la leur au-dessus de la nôtre est moins claire.
Comment ça marche

Une
sérigraphie.

La traduction se fait en arrière-plan. Le service est en lecture seule. C'est le modèle que Shopify utilise pour Translate & Adapt — et à l'opposé des plugins qui traduisent le HTML à la demande et paient à nouveau pour chaque nouvelle page qu'un visiteur ouvre.

Temps de traduction

Contexte
01Le texte est lu directement depuis la base de données — produits, catégories, pages, menus, paramètres du magasin — plus une page de chaque modèle.
02Seul ce qui manque va au service de traduction PixelHunter, plusieurs lots à la fois. Un magasin complet prend moins d'une minute.
03Le dictionnaire est compilé dans un fichier PHP à l'intérieur de uploads/. Un produit que vous publiez est traduit quelques secondes plus tard.

Temps de service

Lecture seule
01Le préfixe de langue est supprimé avant que le routeur WordPress ne fonctionne — /en/shop/ se résout comme /shop/. Pas de règles de réécriture.
02Le dictionnaire est stocké dans OPcache. Servir une page traduite ne coûte ni une requête ni une demande HTTP.
03HTML passe par le cœur de WP_HTML_Processor. Avec un dictionnaire vide, la sortie est byte pour byte l'entrée.
coût = 38 ms + 0.12 ms × remplacement linéaire · mesuré sur la page la plus lourde d'un vrai magasin · 262 KB · 719 remplacements
Configuration

Quatre étapes. Un bouton.

Il n'y a pas de compte API à configurer et rien à paramétrer : l'API de traduction possède sa propre clé. Un glossaire et un ton de marque sont optionnels, sous Paramètres.

1 Langues

Choisissez la source, ajoutez les cibles

Chaque langue cible obtient son propre préfixe d'URL — /en/, /es/. Le panneau installe les packs de traduction WordPress et WooCommerce manquants d'un clic.

2 Licence

Collez la clé

Meilleur dans wp-config.php en tant que PHT_LICENSE_KEY : pas dans la base de données, pas dans une exportation, pas modifiable depuis l'administration. Une clé sert chaque site de votre plan.

3 Tableau de bord

Traduire le site

Un bouton lit tout le site et envoie ce qui manque, avec une barre de progression. Fermez la page — le reste continue en arrière-plan.

4 Chaînes

Revue de ce qui compte

Filtrer par statut, rechercher, corriger manuellement. À partir de ce moment, tout ce que vous publiez est traduit de lui-même.

Tarification

Payer pour le texte.
Pas pour le trafic.

Chaque visite est gratuite — seul le texte nouveau ou modifié est envoyé à traduire. Chaque caractère compte une fois par langue cible, et les caractères non utilisés sont reportés tant que l'abonnement est actif. Les plans annuels coûtent dix mois.

Période de facturation
Devise
Essai gratuit
Gratuit
pas de carte, une fois
30,000 caractères, une fois
1 site
Essayez-le gratuitement
Débutant
$5/mo
facturé mensuellement
$50/an
12 mois au prix de 10
300,000 caractères par mois
1 site
3,600,000 personnages par an, tous au début
1 site
S'abonner S'abonner
Pro La plupart des magasins
$12/mo
facturé mensuellement
$120/an
12 mois au prix de 10
1,500,000 caractères par mois
jusqu'à 5 sites sur une clé
18,000,000 personnages par an, tous au début
jusqu'à 5 sites sur une clé
S'abonner S'abonner
Agence
$29/mo
facturé mensuellement
$290/an
12 mois au prix de 10
6,000,000 caractères par mois
jusqu'à 25 sites sur une clé
72,000,000 personnages par an, tous au début
jusqu'à 25 sites sur une clé
S'abonner S'abonner

Questions sur les taxes, comment les caractères sont comptés ou changement de plan ? Lisez le guide des plans dans la documentation.

Réponses directes

Ce que cela fait. Ce que cela ne fait pas.

01

Ai-je besoin d'un compte API ?

Non. Le plugin communique uniquement avec l'API de traduction PixelHunter, qui possède sa propre clé — vous avez seulement besoin de la clé de licence.

02

Ai-je besoin de WooCommerce?

Non. WooCommerce est optionnel : le plugin traduit n'importe quel site WordPress — pages, articles, menus, catégories et les textes de votre thème. Lorsqu'il y a un magasin, le panier, le paiement et les emails de commande sont également couverts.

03

Les pages traduites sont-elles dans mon plan de site?

Oui. Il n'y a pas de second plan de site à soumettre : les pages traduites sont ajoutées à celui que vous avez déjà. Avec Yoast SEO, Rank Math ou Slim SEO, chaque page obtient une entrée par langue, avec toutes ses versions en tant qu'alternates hreflang ; sans plugin SEO, le plan de site propre à WordPress obtient un plan de site par langue.

04

Avec quels plugins cela fonctionne-t-il?

Yoast SEO, Rank Math et Slim SEO pour les canonicals et les sitemaps ; WP-Optimize, LiteSpeed Cache, WP Rocket et W3 Total Cache pour la purge du cache de page ; et WooCommerce, avec ses packs de traduction officiels. Tout autre cache de page peut être connecté par deux hooks.

05

Les slugs d'URL sont-ils traduits ?

Non, c'est fait exprès. Seul le préfixe change : /fr/produit/blouses/ garde le slug source. Chaque langue a toujours sa propre adresse, avec un canonique qui garde le préfixe et hreflang vers chaque autre version, donc Google voit les versions linguistiques — jamais de contenu dupliqué. Et un lien ne se casse jamais quand une traduction est corrigée plus tard.

06

Cela ralentit-il mon site ?

Dans la langue source, 0 ms. Sur les pages traduites, le dictionnaire est lu depuis OPcache ; un cache de page hôte sert chaque langue une fois par URL par TTL.

07

« Subtotal », « Proceed to checkout »?

Ils proviennent du pack de traduction officiel de WooCommerce — revus par des humains, sans coût API. Le panneau indique quels packs manquent et les installe.

08

Les e-mails à la boutique changent-ils ?

Non. Les e-mails à l'administrateur restent dans la langue de la boutique ; seuls les e-mails des clients sont envoyés dans la langue de l'achat.

09

Exigences ?

WordPress 6.7 ou ultérieure et PHP 8.1 ou ultérieur. Pas d'étape de construction, pas de jQuery, pas de dépendances d'exécution.

10

Que se passe-t-il lorsque les caractères s'épuisent ?

Les traductions sont mises en pause et redémarrent chaque heure. Rien n'est perdu : les textes en attente attendent la prochaine période, et le site continue à servir tout ce qui a déjà été traduit. Besoin de plus ? Changez de plan dans Mon compte: une nouvelle clé pour le nouveau plan arrive par email et la traduction reprend dès qu'elle est collée sur vos sites.

11

Et si j'annule ?

La clé fonctionne jusqu'à la fin de la période payée. Après cela, le site continue de servir chaque traduction qu'il a — seul un nouveau texte cesse d'être traduit.

12

La préproduction compte-t-elle comme un site ?

Oui. Traduisez sur le site en direct, ou libérez un créneau dans Mon compte → Activations pendant que vous travaillez sur le texte. L'essai gratuit est une fois par site et n'accepte pas les emails jetables.

13

Qu'est-ce qui n'est pas traduit ?

Slugs d'URL, tout ce qui est à l'intérieur <script> — y compris le JSON-LD des plugins SEO — et les emails clients non liés à une commande, qui sortent dans la langue du magasin. Chaque phrase a une traduction sur tout le site.

Pour les développeurs

Trois fonctions. Trois filtres. Deux actions.

Langue actuelle
<?php if ( 'en' === pht_current_language() ) : ?>
  <p>Free shipping to the UK.</p>
<?php endif; ?>
Interrupteur, à la main
[pht_switcher show_label="no" class="mine"]

<?php pht_switcher( [ 'style' => 'dropdown' ] ); ?>
Cache de page quelconque
add_action( 'pht_purge_urls', function ( $urls ) {
  foreach ( $urls as $url ) my_cache_purge( $url );
} );

Publier.
Lire en
chaque langue.

30 000 caractères, un site, pas de carte. La clé arrive par e-mail après le paiement.