TranslateWP ProXania Code · v1.0.0 · xaniacode.com

TranslateWP Pro — Complete Guide

Everything you need to run a multilingual WordPress site with AI translation: server requirements, installation, configuration, and day-to-day usage.

OverviewWhat TranslateWP Pro does

TranslateWP Pro translates your entire frontend — page text, buttons, form fields and labels, image alt/title text, tooltips, ARIA labels, SEO/social meta tags, WooCommerce content and customer emails — using OpenAI, Claude (Anthropic) or DeepL. Translations are stored in your own database and served locally, so each string is paid for once and delivered instantly afterwards. Visitors switch languages through URL prefixes (/fr/, /nl/, /ro/…) and a floating switcher.

Key capabilities: async frontend auto-translation, a visual click-to-edit editor, background translation jobs, live translation of AJAX-inserted content (mini-cart, load-more, filters), optional full-page caching, multilingual sitemap and hreflang, CSV import/export, logs, and multi-layer cost protection.

Chapter 1Server requirements

ComponentMinimumRecommended
WordPress6.0Latest release; multisite supported
PHP8.08.2 – 8.4
PHP extensionscurl, json+ dom/libxml (best text extraction; a regex engine is used as fallback), mbstring, openssl
DatabaseMySQL 5.7 / MariaDB 10.3MySQL 8 / MariaDB 10.6+ (the plugin creates 6 tables)
Web serverApache, LiteSpeed or nginx — all supported. Pretty permalinks enabled (needed for language URLs and the sitemap).
Outbound HTTPSPort 443 open towards api.openai.com, api.anthropic.com, api.deepl.com / api-free.deepl.com (only the providers you use).
WP-CronActive (default) — required for background translation jobs. On low-traffic sites, a real cron entry is recommended (see chapter 4.5).
Diskwp-content/cache/translatewp/ must be writable if you enable the optional page cache.
HTTPSStrongly recommended — API keys travel between your server and the AI providers.
Behind ModSecurity / a WAF? The plugin ships docs/modsecurity-whitelist.conf — scoped, commented rules your host can apply so the WordPress uploader and TranslateWP's AJAX endpoints are never blocked. All TranslateWP AJAX requests identify themselves in the URL (admin-ajax.php?action=twp_…) so firewalls can target them precisely.

Chapter 2Installation

Method A — WordPress uploader

  1. Go to Plugins → Add New → Upload Plugin.
  2. Select translatewp-pro-1.0.0.zip and click Install Now.
  3. Click Activate. Language rewrite rules and the sitemap endpoint are registered automatically.

Method B — File Manager / FTP (works behind any firewall)

  1. Upload the ZIP to wp-content/plugins/ and extract it there. You should end up with wp-content/plugins/translatewp-pro/.
  2. Activate TranslateWP Pro from the Plugins screen.

Method C — WP-CLI

wp plugin install translatewp-pro-1.0.0.zip --activate
Getting “403 Forbidden” during upload? That response comes from the server firewall (usually ModSecurity), not from WordPress. Install via Method B or C right away, and hand docs/modsecurity-whitelist.conf to the server administrator for a permanent, scoped exception.

Multisite

Network-activating installs the plugin on every site of the network; new sites created later are set up automatically. Each site keeps its own languages, providers, translations and limits.

Chapter 3Configuration

3.1 Choose a translation provider

ProviderBest forPricing basisGet a key
OpenAILowest cost, 100+ languages, structured outputPer token, from $0.05 / 1Mplatform.openai.com/api-keys
Claude (Anthropic)Natural, nuanced translations; careful HTML handlingPer token, from $1 / 1Mconsole.anthropic.com/settings/keys
DeepLEuropean languages, formal documentsPer character; Free plan: 500,000 chars/monthdeepl.com/pro-api

Select the active provider under TranslateWP → Settings → Translation Provider. If the active provider fails or hits a limit, every other configured provider is tried automatically, in order — configure two for automatic failover.

3.2 API keys

Paste each key in its provider card and press Test Connection. Stored keys are shown masked (sk-…abcd) and are never echoed back in full; leave the field blank on later saves to keep the existing key, or paste a new one to replace it.

3.3 Models and cost per model

Prices are USD per 1 million tokens (input / output). As a rule of thumb, 1 token ≈ 4 characters; translating 100,000 characters costs roughly $0.02 on GPT-4o Mini and $0.16 on Claude Haiku 4.5.

OpenAI

ModelInputOutputNotes
GPT-4o Mini Recommended$0.15$0.60Cheapest reliable choice for translation
GPT-5.5$5.00$30.00Flagship, highest quality
GPT-5.4$2.50$15.00Frontier, balanced
GPT-5.4 Mini$0.75$4.50Budget current-gen
GPT-5.4 Nano$0.20$1.25Cheapest current-gen
GPT-5$1.25$10.00
GPT-5 Mini$0.25$2.00
GPT-5 Nano$0.05$0.40Ultra low cost
GPT-4.1$2.00$8.00
GPT-4.1 Mini$0.40$1.60
GPT-4.1 Nano$0.10$0.40
GPT-4o$2.50$10.00Legacy, well tested

Claude (Anthropic)

ModelInputOutputNotes
Claude Haiku 4.5 Recommended$1.00$5.00Cheapest current Claude, fast
Claude Sonnet 5$3.00$15.00Best speed/intelligence balance
Claude Sonnet 4.6$3.00$15.00
Claude Opus 4.8$5.00$25.00Premium
Claude Fable 5$10.00$50.00Most capable, highest cost
Claude Haiku 3.5$0.80$4.00Legacy budget

DeepL is billed per character by DeepL directly; the Free plan includes 500,000 characters/month and its remaining quota is shown on the TranslateWP dashboard.

3.4 Languages & URLs

Active languages
Tick every language your site should serve (18 available: EN, FR, NL, DE, ES, IT, PT, PL, RO, SV, DA, FI, AR, ZH, JA, KO, TR, RU).
Default language
The language your content is written in. It is never sent to a provider.
Language URL prefix
Serves each language on its own path — /fr/about/, /ro/despre/ — which search engines index separately. Recommended: on.
Floating switcher
A small language pill on the frontend; choose its corner under Settings.

3.5 Frontend auto-translate

Mode: Async (recommended)
The page loads instantly with existing translations; missing strings are collected in the browser and translated in small background batches, then applied live.
Mode: Sync
Missing strings are translated during page rendering. Simplest behaviour, but the first visit to an untranslated page waits for the API.
Allow for visitors (public)
Off by default: only logged-in administrators trigger API translation. If you enable it, visitors can trigger translation of missing strings — protected by per-IP rate limits and a global daily cap (chapter 3.8).
Batch size / max batches
How many strings each background request carries (default 50) and how many requests per page view (default 4).
Privacy (GDPR): on WooCommerce cart, checkout and account pages the plugin never sends new strings to any AI provider and never page-caches. Stored translations still apply, so those pages remain translated.

3.6 AJAX & form messages

Two optional switches (off by default) cover strings delivered by AJAX rather than in the page HTML:

Each message is translated once by the active provider (your cost limits apply) and cached.

3.7 Page cache

Optional (off by default). When enabled, fully rendered translated pages are stored per URL + language and served to anonymous visitors without re-processing — a large speed-up for blogs and brochure sites. Only anonymous GET requests on non-dynamic pages are cached; logged-in users, cart/checkout/account, and WooCommerce shop/product pages are always excluded. The cache clears automatically when a post or a translation is saved; an optional TTL adds time-based expiry.

3.8 Cost & safety limits

LimitDefaultWhat it protects
Monthly character limit500,000Hard ceiling for all automatic translation, all providers combined.
Daily character limit100,000Stops runaway days; resets at midnight UTC.
OpenAI monthly USD cap$5Estimated local spend ceiling for OpenAI. 0 disables the cap.
Claude monthly USD cap$5Same, for Claude.
Anonymous daily request cap200Global daily ceiling for visitor-triggered translation — effective even behind a CDN where visitors share one IP.
Max strings per job1,000 (up to 10,000)Size of a background translation job.
Background batch size40Strings translated per cron tick.

An email alert is sent to the site administrator at 80% of the monthly budget. Counters are tracked atomically, so simultaneous requests cannot slip past a limit.

Chapter 4Usage

4.1 Quick start

  1. Configure a provider and press Test Connection (chapter 3.1–3.2).
  2. Enable your languages and the URL prefix (3.4).
  3. Enable Frontend Auto-Translate in Async mode (3.5).
  4. While logged in as admin, open pages in a target language — e.g. /fr/ — and watch strings translate in the background.
  5. For full coverage, create a Background Job per language (4.4) and let WP-Cron finish the catalogue.
  6. Review key marketing phrases with the visual editor (4.3).

4.2 The language switcher

Visitors change language via the floating switcher or by visiting a prefixed URL. The choice is remembered in a cookie (twp_language), and internal links are rewritten to keep visitors inside their language.

4.3 Visual editor (Edit Mode)

From the WordPress admin bar on any frontend page choose TranslateWP → Edit Mode. Every translatable string is highlighted; click one, type the corrected translation, and it saves immediately (marked as manual, so automatic translation never overwrites it). Attribute texts — placeholders, tooltips, button values — are editable the same way.

4.4 Background jobs

TranslateWP → Background Jobs translates everything the site has captured. Create a job for a target language; WP-Cron processes it every minute in batches (default 40), or press Run next batch to advance it manually. Jobs are resumable and safe: items are claimed atomically, so cron and manual runs never translate — or bill — the same string twice.

Low-traffic site? WP-Cron only fires on visits. Add a real cron entry so jobs progress on their own:
*/5 * * * * wget -q -O - https://your-site.tld/wp-cron.php?doing_wp_cron >/dev/null 2>&1

4.5 Translations page & CSV import/export

TranslateWP → Translations lists every captured string with per-language fields; edits save on blur. Import/Export moves a whole language as CSV (columns original, translation_xx) — handy for professional review. Exports are protected against spreadsheet formula injection.

4.6 Logs & dashboard

The dashboard shows per-provider usage (characters, requests, tokens, estimated cost), the safety budget, DeepL's remaining quota, and page-cache statistics with purge buttons. Logs records missing strings, provider errors and job failures, so you always know why something is not yet translated.

4.7 WooCommerce

4.8 SEO

hreflang alternates and canonicals are emitted for every active language; a multilingual sitemap is available at /translatewp-sitemap.xml (password-protected posts excluded). SEO titles/descriptions from Yoast, RankMath, SEOPress and All in One SEO are translated, along with whitelisted meta tags (description, Open Graph, Twitter).

Chapter 5Troubleshooting

“403 Forbidden” when uploading the plugin or during translation
Server firewall (ModSecurity/WAF). Install via FTP/WP-CLI and apply docs/modsecurity-whitelist.conf — see chapter 2.
Translated URLs return 404
Rewrite rules are registered on activation; if your host caches configs, visit Settings → Permalinks and press Save once.
Strings stay untranslated for visitors
By default only admins trigger API translation. Either pre-translate with a Background Job (recommended) or enable public auto-translate (3.5).
“Monthly/daily limit reached” in Logs
A safety cap from chapter 3.8 did its job. Raise the relevant limit in Settings if intentional.
Background job does not advance
WP-Cron is not firing — add the real cron entry from chapter 4.4, or press Run next batch.
Cart/checkout pages show some untranslated dynamic strings
By design, no API calls happen there (GDPR). Capture those strings elsewhere or add them via the Translations page; stored translations apply everywhere, including checkout.

TranslateWP Pro — Guide complet

Tout ce qu'il faut pour gérer un site WordPress multilingue avec traduction par IA : prérequis serveur, installation, configuration et utilisation au quotidien.

AperçuCe que fait TranslateWP Pro

TranslateWP Pro traduit l'intégralité de votre frontend — textes des pages, boutons, champs et libellés de formulaires, attributs alt/title des images, infobulles, libellés ARIA, balises meta SEO/réseaux sociaux, contenu WooCommerce et e-mails clients — avec OpenAI, Claude (Anthropic) ou DeepL. Les traductions sont stockées dans votre propre base de données et servies localement : chaque chaîne n'est payée qu'une seule fois, puis affichée instantanément. Les visiteurs changent de langue via des préfixes d'URL (/fr/, /nl/, /ro/…) et un sélecteur flottant.

Fonctions clés : auto-traduction asynchrone du frontend, éditeur visuel « cliquer-pour-corriger », tâches de traduction en arrière-plan, traduction en direct du contenu inséré par AJAX (mini-panier, « voir plus », filtres), cache de pages optionnel, sitemap multilingue et hreflang, import/export CSV, journaux et protection des coûts multi-niveaux.

Chapitre 1Prérequis serveur

ComposantMinimumRecommandé
WordPress6.0Dernière version ; multisite pris en charge
PHP8.08.2 – 8.4
Extensions PHPcurl, json+ dom/libxml (meilleure extraction du texte ; un moteur regex sert de secours), mbstring, openssl
Base de donnéesMySQL 5.7 / MariaDB 10.3MySQL 8 / MariaDB 10.6+ (le plugin crée 6 tables)
Serveur webApache, LiteSpeed ou nginx — tous pris en charge. Permaliens « jolis » activés (nécessaires aux URL de langue et au sitemap).
HTTPS sortantPort 443 ouvert vers api.openai.com, api.anthropic.com, api.deepl.com / api-free.deepl.com (uniquement les fournisseurs utilisés).
WP-CronActif (par défaut) — requis pour les tâches en arrière-plan. Sur un site à faible trafic, une vraie entrée cron est recommandée (chapitre 4.4).
Disquewp-content/cache/translatewp/ doit être accessible en écriture si vous activez le cache de pages optionnel.
HTTPSFortement recommandé — les clés API transitent entre votre serveur et les fournisseurs d'IA.
Derrière ModSecurity / un WAF ? Le plugin inclut docs/modsecurity-whitelist.conf — des règles ciblées et commentées que votre hébergeur peut appliquer pour que l'installateur WordPress et les points d'entrée AJAX de TranslateWP ne soient jamais bloqués. Chaque requête AJAX de TranslateWP s'identifie dans l'URL (admin-ajax.php?action=twp_…), ce qui permet un filtrage précis.

Chapitre 2Installation

Méthode A — Installateur WordPress

  1. Allez dans Extensions → Ajouter → Téléverser une extension.
  2. Sélectionnez translatewp-pro-1.0.0.zip puis Installer maintenant.
  3. Cliquez sur Activer. Les règles de réécriture des langues et le sitemap sont enregistrés automatiquement.

Méthode B — Gestionnaire de fichiers / FTP (fonctionne derrière tout pare-feu)

  1. Téléversez le ZIP dans wp-content/plugins/ et décompressez-le sur place, pour obtenir wp-content/plugins/translatewp-pro/.
  2. Activez TranslateWP Pro depuis l'écran Extensions.

Méthode C — WP-CLI

wp plugin install translatewp-pro-1.0.0.zip --activate
« 403 Forbidden » pendant le téléversement ? Cette réponse vient du pare-feu du serveur (généralement ModSecurity), pas de WordPress. Installez via la méthode B ou C, puis remettez docs/modsecurity-whitelist.conf à l'administrateur du serveur pour une exception permanente et ciblée.

Multisite

L'activation réseau installe le plugin sur chaque site ; les sites créés ensuite sont configurés automatiquement. Chaque site conserve ses propres langues, fournisseurs, traductions et limites.

Chapitre 3Configuration

3.1 Choisir un fournisseur de traduction

FournisseurIdéal pourTarificationObtenir une clé
OpenAICoût minimal, 100+ langues, sortie structuréeAu token, dès 0,05 $ / 1Mplatform.openai.com/api-keys
Claude (Anthropic)Traductions naturelles et nuancées ; HTML respectéAu token, dès 1 $ / 1Mconsole.anthropic.com/settings/keys
DeepLLangues européennes, documents formelsAu caractère ; offre Free : 500 000 car./moisdeepl.com/pro-api

Choisissez le fournisseur actif dans TranslateWP → Settings → Translation Provider. Si le fournisseur actif échoue ou atteint une limite, chaque autre fournisseur configuré est essayé automatiquement, dans l'ordre — configurez-en deux pour un basculement automatique.

3.2 Clés API

Collez chaque clé dans la carte de son fournisseur et cliquez sur Test Connection. Les clés enregistrées s'affichent masquées (sk-…abcd) et ne sont jamais renvoyées en clair ; laissez le champ vide lors des enregistrements suivants pour conserver la clé, ou collez-en une nouvelle pour la remplacer.

3.3 Modèles et coût par modèle

Prix en USD par million de tokens (entrée / sortie). En pratique, 1 token ≈ 4 caractères ; traduire 100 000 caractères coûte environ 0,02 $ avec GPT-4o Mini et 0,16 $ avec Claude Haiku 4.5.

OpenAI

ModèleEntréeSortieRemarques
GPT-4o Mini Recommandé0,15 $0,60 $Le choix fiable le moins cher pour la traduction
GPT-5.55,00 $30,00 $Vaisseau amiral, qualité maximale
GPT-5.42,50 $15,00 $Frontier, équilibré
GPT-5.4 Mini0,75 $4,50 $Génération actuelle, économique
GPT-5.4 Nano0,20 $1,25 $Génération actuelle, le moins cher
GPT-51,25 $10,00 $
GPT-5 Mini0,25 $2,00 $
GPT-5 Nano0,05 $0,40 $Coût ultra réduit
GPT-4.12,00 $8,00 $
GPT-4.1 Mini0,40 $1,60 $
GPT-4.1 Nano0,10 $0,40 $
GPT-4o2,50 $10,00 $Ancienne génération, éprouvé

Claude (Anthropic)

ModèleEntréeSortieRemarques
Claude Haiku 4.5 Recommandé1,00 $5,00 $Le Claude actuel le moins cher, rapide
Claude Sonnet 53,00 $15,00 $Meilleur équilibre vitesse/intelligence
Claude Sonnet 4.63,00 $15,00 $
Claude Opus 4.85,00 $25,00 $Premium
Claude Fable 510,00 $50,00 $Le plus capable, coût le plus élevé
Claude Haiku 3.50,80 $4,00 $Ancienne génération, économique

DeepL facture au caractère directement ; l'offre Free inclut 500 000 caractères/mois et le quota restant s'affiche sur le tableau de bord TranslateWP.

3.4 Langues et URL

Langues actives
Cochez chaque langue à servir (18 disponibles : EN, FR, NL, DE, ES, IT, PT, PL, RO, SV, DA, FI, AR, ZH, JA, KO, TR, RU).
Langue par défaut
La langue de rédaction de votre contenu. Elle n'est jamais envoyée à un fournisseur.
Préfixe d'URL de langue
Sert chaque langue sur son propre chemin — /fr/a-propos/ — que les moteurs indexent séparément. Recommandé : activé.
Sélecteur flottant
Une pastille de langue sur le frontend ; choisissez son coin dans les réglages.

3.5 Auto-traduction du frontend

Mode Async (recommandé)
La page se charge immédiatement avec les traductions existantes ; les chaînes manquantes sont collectées dans le navigateur, traduites par petits lots en arrière-plan puis appliquées en direct.
Mode Sync
Les chaînes manquantes sont traduites pendant le rendu. Comportement le plus simple, mais la première visite d'une page non traduite attend l'API.
Autoriser pour les visiteurs (public)
Désactivé par défaut : seuls les administrateurs connectés déclenchent la traduction par API. Si vous l'activez, les visiteurs peuvent déclencher la traduction des chaînes manquantes — protégée par des limites par IP et un plafond quotidien global (chapitre 3.8).
Taille des lots / nombre max de lots
Nombre de chaînes par requête d'arrière-plan (50 par défaut) et de requêtes par affichage de page (4 par défaut).
Confidentialité (RGPD) : sur les pages panier, commande et compte WooCommerce, le plugin n'envoie jamais de nouvelles chaînes à un fournisseur d'IA et ne met jamais la page en cache. Les traductions déjà stockées s'appliquent, ces pages restent donc traduites.

3.6 Messages AJAX et formulaires

Deux options (désactivées par défaut) couvrent les chaînes livrées par AJAX plutôt que dans le HTML de la page :

Chaque message est traduit une seule fois par le fournisseur actif (vos limites de coût s'appliquent), puis mis en cache.

3.7 Cache de pages

Optionnel (désactivé par défaut). Une fois activé, les pages traduites entièrement rendues sont stockées par URL + langue et servies aux visiteurs anonymes sans retraitement — gain de vitesse important pour les blogs et sites vitrines. Seules les requêtes GET anonymes sur des pages non dynamiques sont mises en cache ; utilisateurs connectés, panier/commande/compte et pages boutique/produit WooCommerce sont toujours exclus. Le cache se vide automatiquement à l'enregistrement d'un article ou d'une traduction ; un TTL optionnel ajoute une expiration temporelle.

3.8 Limites de coût et de sécurité

LimiteDéfautCe qu'elle protège
Limite mensuelle de caractères500 000Plafond global de la traduction automatique, tous fournisseurs confondus.
Limite quotidienne de caractères100 000Stoppe les emballements ; réinitialisée à minuit UTC.
Plafond mensuel USD OpenAI5 $Plafond local estimé des dépenses OpenAI. 0 le désactive.
Plafond mensuel USD Claude5 $Idem, pour Claude.
Plafond quotidien des requêtes anonymes200Plafond quotidien global des traductions déclenchées par les visiteurs — efficace même derrière un CDN où les visiteurs partagent une IP.
Chaînes max par tâche1 000 (jusqu'à 10 000)Taille d'une tâche d'arrière-plan.
Taille de lot d'arrière-plan40Chaînes traduites par cycle cron.

Un e-mail d'alerte est envoyé à l'administrateur à 80 % du budget mensuel. Les compteurs sont incrémentés de façon atomique : des requêtes simultanées ne peuvent pas dépasser une limite.

Chapitre 4Utilisation

4.1 Démarrage rapide

  1. Configurez un fournisseur et cliquez sur Test Connection (3.1–3.2).
  2. Activez vos langues et le préfixe d'URL (3.4).
  3. Activez Frontend Auto-Translate en mode Async (3.5).
  4. Connecté en admin, ouvrez des pages dans une langue cible — p. ex. /fr/ — et regardez les chaînes se traduire en arrière-plan.
  5. Pour une couverture complète, créez une tâche d'arrière-plan par langue (4.4) et laissez WP-Cron terminer le catalogue.
  6. Relisez les formulations clés avec l'éditeur visuel (4.3).

4.2 Le sélecteur de langue

Les visiteurs changent de langue via le sélecteur flottant ou en visitant une URL préfixée. Le choix est mémorisé dans un cookie (twp_language) et les liens internes sont réécrits pour rester dans la langue choisie.

4.3 Éditeur visuel (Edit Mode)

Depuis la barre d'administration sur n'importe quelle page du frontend, choisissez TranslateWP → Edit Mode. Chaque chaîne traduisible est surlignée ; cliquez, saisissez la correction, elle s'enregistre immédiatement (marquée manuelle : la traduction automatique ne l'écrasera jamais). Les textes d'attributs — placeholders, infobulles, valeurs de boutons — se corrigent de la même façon.

4.4 Tâches d'arrière-plan

TranslateWP → Background Jobs traduit tout ce que le site a capturé. Créez une tâche pour une langue cible ; WP-Cron la traite chaque minute par lots (40 par défaut), ou cliquez sur Run next batch pour avancer manuellement. Les tâches sont reprenables et sûres : les éléments sont réservés de façon atomique, cron et exécutions manuelles ne traduisent — ni ne facturent — jamais deux fois la même chaîne.

Site à faible trafic ? WP-Cron ne se déclenche qu'aux visites. Ajoutez une vraie entrée cron :
*/5 * * * * wget -q -O - https://votre-site.tld/wp-cron.php?doing_wp_cron >/dev/null 2>&1

4.5 Page Translations & import/export CSV

TranslateWP → Translations liste chaque chaîne capturée avec un champ par langue ; l'édition s'enregistre à la perte de focus. Import/Export déplace une langue entière en CSV (colonnes original, translation_xx) — pratique pour une relecture professionnelle. Les exports sont protégés contre l'injection de formules de tableur.

4.6 Journaux et tableau de bord

Le tableau de bord affiche l'utilisation par fournisseur (caractères, requêtes, tokens, coût estimé), le budget de sécurité, le quota restant DeepL et les statistiques du cache de pages avec boutons de purge. Logs consigne chaînes manquantes, erreurs de fournisseur et échecs de tâches : vous savez toujours pourquoi un texte n'est pas encore traduit.

4.7 WooCommerce

4.8 SEO

Les alternates hreflang et les canonicals sont émis pour chaque langue active ; un sitemap multilingue est disponible sur /translatewp-sitemap.xml (articles protégés par mot de passe exclus). Les titres/descriptions SEO de Yoast, RankMath, SEOPress et All in One SEO sont traduits, ainsi que les balises meta en liste blanche (description, Open Graph, Twitter).

Chapitre 5Dépannage

« 403 Forbidden » au téléversement du plugin ou pendant la traduction
Pare-feu serveur (ModSecurity/WAF). Installez via FTP/WP-CLI et appliquez docs/modsecurity-whitelist.conf — voir chapitre 2.
Les URL traduites renvoient 404
Les règles de réécriture sont enregistrées à l'activation ; si votre hébergeur met la configuration en cache, ouvrez Réglages → Permaliens et enregistrez une fois.
Les chaînes restent non traduites pour les visiteurs
Par défaut, seuls les admins déclenchent la traduction par API. Pré-traduisez avec une tâche d'arrière-plan (recommandé) ou activez l'auto-traduction publique (3.5).
« Limite mensuelle/quotidienne atteinte » dans les journaux
Un plafond du chapitre 3.8 a joué son rôle. Augmentez la limite concernée dans les réglages si c'est voulu.
Une tâche d'arrière-plan n'avance pas
WP-Cron ne se déclenche pas — ajoutez l'entrée cron du chapitre 4.4, ou cliquez sur Run next batch.
Des chaînes dynamiques restent non traduites sur panier/commande
Volontaire : aucun appel API n'a lieu sur ces pages (RGPD). Capturez ces chaînes ailleurs ou ajoutez-les via la page Translations ; les traductions stockées s'appliquent partout, checkout compris.

TranslateWP Pro — Ghid complet

Tot ce ai nevoie pentru un site WordPress multilingv cu traducere prin AI: cerințe de server, instalare, configurare și utilizare de zi cu zi.

PrezentareCe face TranslateWP Pro

TranslateWP Pro traduce întregul frontend — textul paginilor, butoane, câmpuri și etichete de formulare, atributele alt/title ale imaginilor, tooltip-uri, etichete ARIA, meta tag-uri SEO/social, conținut WooCommerce și emailuri către clienți — folosind OpenAI, Claude (Anthropic) sau DeepL. Traducerile se stochează în propria bază de date și se servesc local: fiecare șir se plătește o singură dată, apoi se afișează instantaneu. Vizitatorii schimbă limba prin prefixe de URL (/fr/, /nl/, /ro/…) și printr-un comutator flotant.

Funcții cheie: auto-traducere asincronă a frontend-ului, editor vizual „click-și-corectezi", job-uri de traducere în fundal, traducere live a conținutului inserat prin AJAX (mini-coș, load-more, filtre), cache de pagini opțional, sitemap multilingv și hreflang, import/export CSV, jurnale și protecție a costurilor pe mai multe niveluri.

Capitolul 1Cerințe server

ComponentăMinimRecomandat
WordPress6.0Ultima versiune; multisite suportat
PHP8.08.2 – 8.4
Extensii PHPcurl, json+ dom/libxml (extracție optimă a textului; există fallback pe regex), mbstring, openssl
Bază de dateMySQL 5.7 / MariaDB 10.3MySQL 8 / MariaDB 10.6+ (plugin-ul creează 6 tabele)
Server webApache, LiteSpeed sau nginx — toate suportate. Permalink-uri „pretty" activate (necesare pentru URL-urile de limbă și sitemap).
HTTPS de ieșirePort 443 deschis către api.openai.com, api.anthropic.com, api.deepl.com / api-free.deepl.com (doar providerii folosiți).
WP-CronActiv (implicit) — necesar pentru job-urile din fundal. Pe site-uri cu trafic mic se recomandă un cron real (capitolul 4.4).
Discwp-content/cache/translatewp/ trebuie să fie inscriptibil dacă activezi cache-ul de pagini opțional.
HTTPSPuternic recomandat — cheile API circulă între serverul tău și providerii AI.
În spatele ModSecurity / unui WAF? Plugin-ul include docs/modsecurity-whitelist.conf — reguli țintite și comentate pe care hostul le poate aplica astfel încât uploader-ul WordPress și endpointurile AJAX TranslateWP să nu fie blocate. Fiecare request AJAX TranslateWP se identifică în URL (admin-ajax.php?action=twp_…), permițând filtrare precisă.

Capitolul 2Instalare

Metoda A — Uploader-ul WordPress

  1. Mergi la Module → Adaugă modul → Încarcă modul.
  2. Selectează translatewp-pro-1.0.0.zip și apasă Instalează acum.
  3. Apasă Activează. Regulile de rescriere pentru limbi și sitemap-ul se înregistrează automat.

Metoda B — File Manager / FTP (merge în spatele oricărui firewall)

  1. Urcă ZIP-ul în wp-content/plugins/ și extrage-l acolo, astfel încât să rezulte wp-content/plugins/translatewp-pro/.
  2. Activează TranslateWP Pro din ecranul Module.

Metoda C — WP-CLI

wp plugin install translatewp-pro-1.0.0.zip --activate
Primești „403 Forbidden" la upload? Răspunsul vine de la firewall-ul serverului (de regulă ModSecurity), nu de la WordPress. Instalează prin metoda B sau C, apoi dă fișierul docs/modsecurity-whitelist.conf administratorului de server pentru o excepție permanentă și țintită.

Multisite

Activarea la nivel de rețea instalează plugin-ul pe fiecare site; site-urile create ulterior se configurează automat. Fiecare site își păstrează propriile limbi, provideri, traduceri și limite.

Capitolul 3Configurare

3.1 Alege providerul de traducere

ProviderIdeal pentruTarifareObții cheia de la
OpenAICost minim, 100+ limbi, output structuratPer token, de la 0,05 $ / 1Mplatform.openai.com/api-keys
Claude (Anthropic)Traduceri naturale, nuanțate; HTML respectatPer token, de la 1 $ / 1Mconsole.anthropic.com/settings/keys
DeepLLimbi europene, documente formalePer caracter; plan Free: 500.000 car./lunădeepl.com/pro-api

Alege providerul activ în TranslateWP → Settings → Translation Provider. Dacă providerul activ eșuează sau atinge o limită, ceilalți provideri configurați sunt încercați automat, în ordine — configurează doi pentru failover automat.

3.2 Chei API

Lipește fiecare cheie în cardul providerului și apasă Test Connection. Cheile salvate se afișează mascat (sk-…abcd) și nu sunt redate niciodată integral; lasă câmpul gol la salvările ulterioare ca să păstrezi cheia existentă, sau lipește una nouă ca s-o înlocuiești.

3.3 Modele și costul per model

Prețurile sunt în USD per 1 milion de tokeni (intrare / ieșire). Ca reper, 1 token ≈ 4 caractere; traducerea a 100.000 de caractere costă aproximativ 0,02 $ pe GPT-4o Mini și 0,16 $ pe Claude Haiku 4.5.

OpenAI

ModelIntrareIeșireObservații
GPT-4o Mini Recomandat0,15 $0,60 $Cea mai ieftină alegere fiabilă pentru traducere
GPT-5.55,00 $30,00 $Flagship, calitate maximă
GPT-5.42,50 $15,00 $Frontier, echilibrat
GPT-5.4 Mini0,75 $4,50 $Generație curentă, buget
GPT-5.4 Nano0,20 $1,25 $Generație curentă, cel mai ieftin
GPT-51,25 $10,00 $
GPT-5 Mini0,25 $2,00 $
GPT-5 Nano0,05 $0,40 $Cost ultra redus
GPT-4.12,00 $8,00 $
GPT-4.1 Mini0,40 $1,60 $
GPT-4.1 Nano0,10 $0,40 $
GPT-4o2,50 $10,00 $Generație anterioară, bine testat

Claude (Anthropic)

ModelIntrareIeșireObservații
Claude Haiku 4.5 Recomandat1,00 $5,00 $Cel mai ieftin Claude curent, rapid
Claude Sonnet 53,00 $15,00 $Cel mai bun echilibru viteză/inteligență
Claude Sonnet 4.63,00 $15,00 $
Claude Opus 4.85,00 $25,00 $Premium
Claude Fable 510,00 $50,00 $Cel mai capabil, costul cel mai mare
Claude Haiku 3.50,80 $4,00 $Generație anterioară, buget

DeepL facturează per caracter direct; planul Free include 500.000 de caractere/lună, iar cota rămasă apare pe dashboard-ul TranslateWP.

3.4 Limbi și URL-uri

Limbi active
Bifează fiecare limbă pe care site-ul o va servi (18 disponibile: EN, FR, NL, DE, ES, IT, PT, PL, RO, SV, DA, FI, AR, ZH, JA, KO, TR, RU).
Limba implicită
Limba în care e scris conținutul. Nu este trimisă niciodată către un provider.
Prefix de limbă în URL
Servește fiecare limbă pe propriul path — /ro/despre/ — pe care motoarele de căutare îl indexează separat. Recomandat: activat.
Comutator flotant
O pastilă de limbă pe frontend; alegi colțul din setări.

3.5 Auto-traducerea frontend-ului

Mod Async (recomandat)
Pagina se încarcă instant cu traducerile existente; șirurile lipsă sunt colectate în browser, traduse în loturi mici în fundal și aplicate live.
Mod Sync
Șirurile lipsă se traduc în timpul randării. Cel mai simplu comportament, dar prima vizită pe o pagină netradusă așteaptă API-ul.
Permite pentru vizitatori (public)
Oprit implicit: doar administratorii autentificați declanșează traducere prin API. Dacă îl activezi, vizitatorii pot declanșa traducerea șirurilor lipsă — protejată de limite per IP și un plafon zilnic global (capitolul 3.8).
Mărimea lotului / nr. max de loturi
Câte șiruri transportă fiecare request de fundal (implicit 50) și câte request-uri per afișare de pagină (implicit 4).
Confidențialitate (GDPR): pe paginile coș, checkout și cont WooCommerce, plugin-ul nu trimite niciodată șiruri noi către un provider AI și nu face cache de pagină. Traducerile deja stocate se aplică, deci paginile rămân traduse.

3.6 Mesaje AJAX și formulare

Două opțiuni (oprite implicit) acoperă șirurile livrate prin AJAX, nu în HTML-ul paginii:

Fiecare mesaj este tradus o singură dată de providerul activ (limitele tale de cost se aplică) și apoi servit din cache.

3.7 Cache-ul de pagini

Opțional (oprit implicit). Când e activat, paginile traduse complet randate se stochează per URL + limbă și se servesc vizitatorilor anonimi fără reprocesare — un câștig mare de viteză pentru bloguri și site-uri de prezentare. Doar request-urile GET anonime pe pagini non-dinamice se pun în cache; utilizatorii autentificați, coș/checkout/cont și paginile shop/produs WooCommerce sunt mereu excluse. Cache-ul se golește automat la salvarea unui articol sau a unei traduceri; un TTL opțional adaugă expirare temporală.

3.8 Limite de cost și siguranță

LimităImplicitCe protejează
Limită lunară de caractere500.000Plafon global pentru toată traducerea automată, toți providerii la un loc.
Limită zilnică de caractere100.000Oprește zilele scăpate de sub control; se resetează la miezul nopții UTC.
Plafon lunar USD OpenAI5 $Plafon local estimat pentru cheltuielile OpenAI. 0 îl dezactivează.
Plafon lunar USD Claude5 $La fel, pentru Claude.
Plafon zilnic request-uri anonime200Plafon zilnic global pentru traducerile declanșate de vizitatori — eficient și în spatele unui CDN unde vizitatorii împart un IP.
Șiruri max per job1.000 (până la 10.000)Dimensiunea unui job de traducere în fundal.
Mărimea lotului de fundal40Șiruri traduse per ciclu de cron.

La 80% din bugetul lunar se trimite un email de alertă administratorului. Contoarele sunt incrementate atomic: request-urile simultane nu pot depăși o limită.

Capitolul 4Utilizare

4.1 Pornire rapidă

  1. Configurează un provider și apasă Test Connection (3.1–3.2).
  2. Activează limbile și prefixul de URL (3.4).
  3. Activează Frontend Auto-Translate în modul Async (3.5).
  4. Autentificat ca admin, deschide pagini într-o limbă țintă — de ex. /fr/ — și urmărește cum șirurile se traduc în fundal.
  5. Pentru acoperire completă, creează un Background Job per limbă (4.4) și lasă WP-Cron să termine catalogul.
  6. Revizuiește frazele-cheie de marketing cu editorul vizual (4.3).

4.2 Comutatorul de limbă

Vizitatorii schimbă limba din comutatorul flotant sau vizitând un URL cu prefix. Alegerea se reține într-un cookie (twp_language), iar linkurile interne sunt rescrise ca vizitatorul să rămână în limba lui.

4.3 Editorul vizual (Edit Mode)

Din bara de administrare WordPress, pe orice pagină de frontend, alege TranslateWP → Edit Mode. Fiecare șir traductibil e evidențiat; dai click, tastezi corectura, se salvează imediat (marcată ca manuală — traducerea automată nu o va suprascrie niciodată). Textele din atribute — placeholders, tooltip-uri, valori de butoane — se corectează la fel.

4.4 Job-uri în fundal

TranslateWP → Background Jobs traduce tot ce a capturat site-ul. Creezi un job pentru o limbă țintă; WP-Cron îl procesează în fiecare minut, în loturi (implicit 40), sau apeși Run next batch ca să-l avansezi manual. Job-urile sunt reluabile și sigure: elementele sunt rezervate atomic, deci cron-ul și rulările manuale nu traduc — și nu facturează — niciodată același șir de două ori.

Site cu trafic mic? WP-Cron se declanșează doar la vizite. Adaugă un cron real:
*/5 * * * * wget -q -O - https://site-ul-tau.tld/wp-cron.php?doing_wp_cron >/dev/null 2>&1

4.5 Pagina Translations & import/export CSV

TranslateWP → Translations listează fiecare șir capturat, cu câmp per limbă; editarea se salvează la părăsirea câmpului. Import/Export mută o limbă întreagă ca CSV (coloane original, translation_xx) — util pentru revizuire profesională. Exporturile sunt protejate împotriva injecției de formule de foaie de calcul.

4.6 Jurnale și dashboard

Dashboard-ul arată utilizarea per provider (caractere, request-uri, tokeni, cost estimat), bugetul de siguranță, cota rămasă DeepL și statisticile cache-ului de pagini, cu butoane de golire. Logs înregistrează șiruri lipsă, erori de provider și eșecuri de job — știi mereu de ce un text nu e încă tradus.

4.7 WooCommerce

4.8 SEO

Alternates hreflang și canonicals se emit pentru fiecare limbă activă; un sitemap multilingv e disponibil la /translatewp-sitemap.xml (articolele protejate cu parolă sunt excluse). Titlurile/descrierile SEO din Yoast, RankMath, SEOPress și All in One SEO se traduc, la fel și meta tag-urile din lista albă (description, Open Graph, Twitter).

Capitolul 5Depanare

„403 Forbidden" la upload-ul plugin-ului sau în timpul traducerii
Firewall de server (ModSecurity/WAF). Instalează prin FTP/WP-CLI și aplică docs/modsecurity-whitelist.conf — vezi capitolul 2.
URL-urile traduse dau 404
Regulile de rescriere se înregistrează la activare; dacă hostul cache-uiește configurația, deschide Setări → Permalink-uri și salvează o dată.
Șirurile rămân netraduse pentru vizitatori
Implicit, doar adminii declanșează traducere prin API. Pre-tradu cu un Background Job (recomandat) sau activează auto-traducerea publică (3.5).
„Limita lunară/zilnică atinsă" în jurnale
Un plafon din capitolul 3.8 și-a făcut treaba. Mărește limita respectivă din setări dacă e intenționat.
Un job în fundal nu avansează
WP-Cron nu se declanșează — adaugă cron-ul real din capitolul 4.4 sau apasă Run next batch.
Șiruri dinamice rămân netraduse pe coș/checkout
Intenționat: pe aceste pagini nu au loc apeluri API (GDPR). Capturează acele șiruri în altă parte sau adaugă-le din pagina Translations; traducerile stocate se aplică peste tot, inclusiv la checkout.