Getting started
Guide Proxylang
Comment configurer Proxylang, améliorer vos traductions et être trouvé dans d'autres langues. La documentation pour les développeurs se trouve à la fin.
Start here
Mise en route
Quatre étapes pour passer d'un nouveau compte à un site traduit. La balise script est l'option par défaut et fonctionne sur toutes les plateformes.
Configuration en quatre étapes
Add your site
Allez dans Configuration et saisissez l'adresse de votre site web. Choisissez la plateforme utilisée.
Pick languages
Choisissez la langue d'origine de votre site, puis les langues que vous souhaitez ajouter. Votre forfait détermine le nombre de langues autorisées.
Install
Choisissez comment la balise script est intégrée à votre site. Laissez l'IA s'en charger : collez notre message dans ChatGPT, Claude ou Cursor. Faites-le vous-même : copiez une ligne et publiez. Ou envoyez-le à votre développeur : nous rédigeons l'e-mail. Les sites WordPress utilisent le plugin.
Check your site
L'assistant confirme que le script est actif. Un sélecteur de langue apparaît sur votre site.
Guides d'installation par plateforme :
Choisissez comment Proxylang se connecte
La balise script est l'option par défaut et fonctionne partout. Les autres modes ajoutent une visibilité sur les moteurs de recherche dans d'autres langues. Vous pouvez changer de mode plus tard dans l'onglet Configuration du domaine ; rien ne s'interrompt lors du changement.
Script tag
Les moteurs de recherche lisent votre site original.
Hybrid
Les moteurs de recherche accèdent aux pages traduites.
DNS Proxy
Tout le monde accède aux pages traduites.
Script tag
Chaque forfait, chaque plateforme
La traduction s'effectue dans le navigateur du visiteur. Les moteurs de recherche voient toujours votre langue d'origine.
Idéal pour : les applications, les pages derrière une connexion et tous les constructeurs de sites.
WordPress plugin
WordPress sites
Installe le script pour vous et ajoute des adresses par langue, des balises SEO et des sitemaps sans toucher au DNS.
Idéal pour : Tout site WordPress ou WooCommerce.
Hybrid
Plan Lite et supérieur, sites créés avec du code
Un seul changement DNS. Les moteurs de recherche reçoivent les pages traduites de Proxylang. Les visiteurs conservent la balise de script.
Idéal pour : Les sites marketing que vous souhaitez faire trouver dans d'autres langues.
DNS Proxy
À partir du forfait Pro, sites construits avec du code
Chaque visiteur accède aux pages traduites de Proxylang, via des adresses traduites telles que /es-es/about.
Idéal pour : Les sites qui souhaitent des URL entièrement traduites pour tout le monde, sans script.
Comment une page est traduite
Avec la balise de script, la page se charge depuis votre serveur comme d'habitude. Le script demande ensuite à Proxylang la traduction de chaque phrase et l'échange. La première visite d'une page se traduit sous vos yeux. Chaque visite ultérieure est instantanée, car la traduction est sauvegardée.
Avec le mode DNS Proxy ou Hybride, Proxylang se place entre le visiteur (ou le moteur de recherche) et votre serveur :
A visitor opens a translated address
yourdomain.com/es-es/pageProxylang récupère la page originale depuis votre serveur
L'IA traduit le texte visible
La mise en page et le code restent exactement tels qu'ils étaient.
La page traduite est sauvegardée et servie
Le visiteur suivant la reçoit instantanément.
SEO tags are added
Liens linguistiques, adresse canonique et plus encore.
Short addresses also work. /es/about and /mx/about both redirect to /es-es/about.
Si rien ne change sur votre site
- Open your site in a private window and use the language switcher. Your own browser may have a language remembered.
- Check the script is on every page, not only the home page. Your platform guide shows where it goes.
- Turn off ad blockers for a moment. Some block third-party scripts.
- Nothing at all, even after a refresh? Your site may have a Content Security Policy. See the developer section at the end of this guide.
Suivant : Marque et contexte
Make translations better
Marque et contexte
Dites au traducteur qui vous êtes. Passer cinq minutes ici apporte plus de qualité que n'importe quoi d'autre dans ce guide.
Quoi remplir
- Brand Name. Your name in your site's language and in English. It is kept exactly as written in every language.
- Site Description. Two or three sentences: what you sell, who reads the site, the tone you want. Example: "Online shop for Korean skincare. Customers are women 25 to 40. Friendly, not formal." This also helps translate visitors' search queries.
- Landing Pages. Pick up to 20 pages (your home page, pricing) where headlines and calls to action should read like native marketing copy rather than a word-for-word translation.
- Translation Formality. Formal, casual or automatic. This one is chosen when you add the domain and cannot be changed later, because every saved translation depends on it.
Quand cela prend effet
Cliquez sur Enregistrer la marque et le contexte. Les nouvelles traductions utilisent le nouveau contexte en moins d'une heure. Le texte déjà traduit conserve sa formulation. Pour refaire une page, vous pouvez corriger des phrases individuelles dans l'Éditeur en direct.
Suivant : Glossaire et liste de non-traduction
Glossaire et liste de non-traduction
Décidez comment un mot doit être traduit, une fois pour toutes, sur chaque page.
Vos termes
- A term is a word or phrase in your site's language, its translation, and the language it applies to. Add one with Add Term . Tick case sensitive if "Apple" and "apple" should be treated differently.
- Terms apply everywhere the phrase appears. Up to 5,000 terms per domain.
- Have a list already? Use Import with a CSV file. Columns:
source_text, target_text, source_lang, target_lang, case_sensitive, notes. Export gives you the same format back. - Tick rows and click Delete Selected to remove many at once.
Timing
Les nouveaux termes atteignent les serveurs de traduction en environ dix minutes. Le texte déjà traduit conserve son ancienne formulation jusqu'à ce qu'il soit traduit à nouveau. Pour vérifier une page, ouvrez-la dans une fenêtre privée afin que votre navigateur ne vous affiche pas une copie sauvegardée.
Ne jamais traduire
La carte « Ne jamais traduire » en haut du glossaire contient les mots qui doivent rester exactement tels qu'écrits dans chaque langue : votre marque, un nom de produit, un hashtag. Jusqu'à 100 entrées de 60 caractères chacune. La correspondance est sensible à la casse, ajoutez donc "iPhone" et non "iphone".
Améliorations de l'IA
Proxylang examine les traductions de votre site selon un calendrier et propose de petites corrections. Les corrections approuvées sont ajoutées à votre glossaire en tant que termes marqués AI, avec la raison et la formulation qu'ils ont remplacées. Vous pouvez les supprimer à tout moment.
- Turn the review off for a domain with the switch in the AI Improvements card. Terms already added stay until you delete them.
- A sentence you edited in the Live Editor is never changed by an AI improvement. Your edit wins.
Éditeur en direct
Corrigez une traduction sur votre propre site : cliquez sur la phrase, tapez, enregistrez. Inclus dans tous les forfaits.
Modifier une traduction
- Go to Live Editor , pick the domain and click Start editing . Your site opens in a new tab with the editor bar on it. Shortcut: on any page of your site, press Esc twice and click Open editor .
- Switch the site to the language you want to fix.
- Click any text. A panel shows the Original and the Translation . Change the translation and click Save .
- You see your change at once. Other visitors see it within about five minutes.
- Your edit always wins. Proxylang will not overwrite it, and neither will AI improvements.
- Changed your mind? Open the same text and click Reset to automatic translation .
- Some text has placeholders like
{0}for a link or bold word. Keep them in your translation, in any order. - Only verified domains you own appear in the Live Editor.
Inviter un traducteur
Un traducteur n'a pas besoin d'un compte Proxylang. Il se connecte sur votre site et peut modifier les traductions, rien d'autre.
- On the Live Editor page, find Invite a translator . Type their email.
- Under Can edit , leave All languages or pick only the languages they should touch.
- Click Send invite . A password appears once . Copy it now, or click Email them to open a ready-made email. Nothing is sent automatically.
- The translator opens your site, switches language, presses Esc twice and signs in with that email and password.
- To remove someone, hover their row in the translator list and click the ×. They are locked out at once.
- The editor bar and panels are available in English, Korean, Japanese, Spanish, German, French, Italian and Portuguese.
Suivant : Contrôlez ce qui est traduit
Contrôlez ce qui est traduit
Conservez les noms de marque, les codes promo et les avis dans la langue d'origine, ou mettez la traduction en pause complètement.
Conserver un élément dans la langue d'origine
Certains textes ne devraient jamais changer : un nom de marque, un code promo, une citation, des avis écrits par des clients. Vous disposez de trois outils, allant du sans code au peu de code.
- A single word or name, everywhere. Add it to the Never Translate list in the glossary. No code.
- A block on a page. Add the
proxylang-no-translateclass to the element. Everything inside it is skipped. See below. - A whole file or region. Wrap it in the comment markers. See below.
Ignorer un bloc avec une classe
Add the class proxylang-no-translate to any element. The attribute data-proxylang-no-translate does the same thing. Works in every mode.
<!-- Everything inside is left in the original language -->
<div class="proxylang-no-translate">
<h2>Brand Name™</h2>
<p>SAVE20 is your coupon code.</p>
</div>
<!-- The attribute form does the same -->
<span data-proxylang-no-translate>Acme Corp</span>Ignorer une zone avec des commentaires
Utile lorsque vous ne pouvez pas ajouter de classe, ou pour le texte à l'intérieur des fichiers JavaScript. Tout ce qui se trouve entre les deux marqueurs est ignoré.
<!-- @proxylang-do-not-translate-start -->
<div class="testimonial">
Customer reviews stay exactly as written.
</div>
<!-- @proxylang-do-not-translate-end -->Ignoré pour vous
- Code samples inside
<pre>and<code>, in every mode. Syntax highlighters that render into those tags (Shiki, highlight.js, Prism) are covered. Code editors that render into a plain<div>(CodeMirror, Monaco) are not; add the class to their wrapper. <kbd>,<var>and<samp>when Proxylang translates on the server (DNS Proxy and Hybrid).- Legal pages at standard addresses. See the Legal pages section.
- Email addresses, URLs, numbers and prices.
Ignorer uniquement pour les moteurs de recherche
Parfois, vous souhaitez que les moteurs de recherche indexent la formulation originale (un slogan, une accroche pour laquelle vous êtes référencé) pendant que les visiteurs lisent la version traduite. Utilisez les marqueurs réservés aux bots. Ils ne s'appliquent que lorsque Proxylang sert des pages aux bots, c'est-à-dire en mode DNS Proxy et Hybrid. Utilisés uniquement via la balise script, ils n'ont aucun effet.
<!-- Search engines index the original wording.
Visitors still see it translated. -->
<h2 class="proxylang-bot-only-no-translate">Our Brand Tagline</h2>
<!-- Attribute form -->
<p data-proxylang-bot-only-no-translate>Ranked slogan</p>
<!-- Comment form, for a larger region -->
<!-- @proxylang-bot-only-do-not-translate-start -->
<section>...</section>
<!-- @proxylang-bot-only-do-not-translate-end -->Tout mettre en pause
Deux commutateurs dans l'onglet Avancé de votre domaine permettent d'arrêter les nouvelles traductions sans rien supprimer de votre site. Le texte qui a déjà été traduit continue de s'afficher.
- Pause Translations. Humans. Visitors see cached translations only. New pages stay in the original language. Use it while you look into a cost spike or a quality problem.
- Pause Translations. Bots. Same, for search engines and AI crawlers. Stops SEO spend without touching what visitors see.
- Also on that tab: Preserve Line Breaks keeps line breaks where the original has them. DNS Proxy mode only.
Pages juridiques
Par défaut, les politiques de confidentialité et les conditions générales restent dans votre propre langue.
Conserver les pages juridiques dans votre propre langue
Une traduction automatique d'un contrat peut ne pas être valable devant un tribunal, et une longue page juridique consommerait inutilement une grande partie de votre solde de mots. Ainsi, Proxylang ignore ces pages, sauf indication contraire de votre part.
Pages ignorées sans configuration
Proxylang se base sur l'adresse de la page. Celles-ci sont ignorées sur tous les forfaits et dans tous les modes :
/privacy,/privacy-policy,/cookie-policy,/cookies,/gdpr/terms,/tos,/terms-of-service,/terms-and-conditions,/legal,/eula/disclaimer,/dmca,/copyright,/refund,/refund-policy,/return-policy,/shipping-policy- German:
/agb,/datenschutz,/impressum,/nutzungsbedingungen
Seul le texte principal de la page est ignoré. L'en-tête, le menu et le pied de page sont toujours traduits, afin que vos visiteurs puissent toujours s'orienter.
Pages juridiques à d'autres adresses
If your legal page lives somewhere else (for example /about/policies), mark it yourself. Add the proxylang-no-translate class to the element that wraps the legal text. On a site builder, put the legal text in a code block or custom HTML element and add the class there.
<!-- Wrap the legal text, not the whole page -->
<main class="proxylang-no-translate">
<h1>Privacy Policy</h1>
<p>Last updated ...</p>
</main>Si vous souhaitez qu'elles soient traduites
Faites appel à un avocat ou à un traducteur certifié pour produire la version dans l'autre langue, puis publiez-la en tant que page distincte. Ne vous fiez pas à la traduction automatique pour tout ce qu'un client pourrait signer ou contester.
Suivant : Le SEO dans d'autres langues
Get found in search
Le SEO dans d'autres langues
Faites en sorte que les pages traduites soient trouvées. Proxylang ajoute les balises recherchées par les moteurs de recherche et vous offre une page pour les surveiller.
La page SEO
Ouvrez l'onglet SEO et choisissez un site. Il nécessite le plan Lite ou un plan supérieur. Les onglets Mots-clés et Titres de page nécessitent également le mode Hybride ou DNS Proxy, car avec la simple balise script, les moteurs de recherche ne voient jamais les titres traduits.
- Health
- A score from 0 to 100 and a to-do list. It checks that search engines can reach your translated pages, that the right tags are on them, and that setup is finished.
- Keywords
- Type up to 20 phrases your customers search for, in your own language. Proxylang writes a matching set for every language search engines index and uses them for your home page title and description. A language that joins them later gets its set shortly after you save, with no click. You can give a pricing or campaign page its own set.
- Page Titles & Descriptions
- See the title and description each language really shows in search results, and pin your own wording for any page. A pin is exact and final for that page and language. Too long? Click Shorten.
- Settings
- Bot translation budget, which pages go in the sitemap, and a switch to stop SEO tags while you test.
- Google Search Console. The Health checklist has a "Connect Google Search Console" step. It pulls Google's own indexing data into the Health tab. Available once Hybrid or DNS Proxy is on.
- Naver and Daum. If Korean is one of your languages, a card lists the four manual steps those engines need. Tick each one off as you go.
- AI answers. A second checklist covers listings that help ChatGPT, Gemini and Perplexity recommend you: Wikidata, Google Business Profile and, for software, G2 and Product Hunt.
Which languages search engines see
Your plan sets how many languages search engines index. Visitors can still pick every language you turn on. A language you add joins the indexed ones on its own while your plan has room. It goes into the sitemap and language links, and if you have saved keywords on the Keywords tab, it gets its own keywords and home page title written from them. To choose them yourself, use the search icon next to each language on the domain's Languages tab.
When every slot is taken, the Languages tab and the SEO Keywords tab name the languages search engines can't see. Swap one in for an indexed language, or upgrade for more.
Balises ajoutées à chaque page traduite
- Language links (hreflang) that tell search engines which page is which language.
- A canonical address per language, so translations are not seen as duplicates.
- The page's language tag, for Bing and Baidu.
- Social preview locale, so shared links show the right language.
S'applique en mode Hybrid et DNS Proxy, où les moteurs de recherche reçoivent les pages de Proxylang. Avec la seule balise script, ils lisent votre site original.
Show an example
<link rel="alternate" hreflang="en-US" href="https://example.com/page" />
<link rel="alternate" hreflang="es-ES" href="https://example.com/es-es/page" />
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr-fr/page" />
<link rel="alternate" hreflang="x-default" href="https://example.com/page" />
<link rel="canonical" href="https://example.com/es-es/page" />
<meta property="og:locale" content="es_ES" />Titres, descriptions et texte d'image
Le titre de la page, la méta-description, le titre et la description de l'aperçu social, ainsi que les mots-clés sont traduits. Les textes alternatifs des images, les info-bulles des boutons et les espaces réservés des formulaires le sont également. Fixez votre propre formulation pour n'importe quelle page dans l'onglet Titres et descriptions de page.
Résultats enrichis
Si vos pages contiennent des données structurées (les détails cachés sur les produits, articles, FAQ ou événements qui alimentent les résultats enrichis dans Google), les champs de texte sont traduits et le champ de langue est mis à jour. Les prix, les dates, les URL et les identifiants sont laissés intacts.
Sitemaps
Proxylang builds a sitemap per language and lists them all at /sitemap.xml on your domain. Pages come from your own sitemap, plus pages Proxylang has seen. Each language also has its own file, such as /es-es/sitemap.xml . They refresh daily, and right away when a language save changes which languages search engines see; click Regenerate sitemap on the SEO Settings tab to rebuild now.
Show an example
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>https://example.com/sitemap-1.xml</loc></sitemap>
<sitemap><loc>https://example.com/es-es/sitemap.xml</loc></sitemap>
<sitemap><loc>https://example.com/fr-fr/sitemap.xml</loc></sitemap>
</sitemapindex>Choisissez quelles pages figurent dans le sitemap
Dans l'onglet Paramètres SEO, sous Pages du sitemap :
- All pages. The default.
- Only specific paths. Start with a few pages, add more later.
- Exclude paths. Hide a section, such as
/internal/*.
One path per line. * matches anything, so /blog/* covers every blog post. The home page is always included. Subdomains use their root domain's setting.
Informer les moteurs de recherche des nouvelles pages
- Bing, Yandex, Naver, Seznam and Yep are told the moment a translated page is saved. DuckDuckGo, Ecosia and Qwant use Bing's index. Nothing to set up.
- Google does not take pings. It finds your pages through the sitemap and the language links. Connecting Search Console lets you watch it happen.
- Your
robots.txtis served with the sitemap lines added. Your own rules are kept.
Moteurs de recherche IA
robots.txtallows GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended.- A
/llms.txtfile describes your site and lists its languages and sitemaps for AI tools that look for one. - AI bots get translated pages only in Hybrid or DNS Proxy mode. They are counted under the bot budget like any other crawler.
Langue dans chaque adresse
In DNS Proxy mode, visitors normally see clean addresses and their language is remembered in a cookie. Turn on URL Language Prefix (domain → Advanced tab) and every visitor sees the language in the address, like /es-es/about . Search results, ads and analytics then always point at one clear version of each page.
Mode DNS Proxy uniquement. Les sous-domaines suivent leur domaine racine.
Mode Hybrid (SEO pour les moteurs de recherche)
Les moteurs de recherche reçoivent les pages traduites de Proxylang tandis que vos visiteurs conservent la balise script.
Ce que cela fait
La balise script traduit les pages dans le navigateur du visiteur. Les moteurs de recherche n'exécutent pas ce script, ils ne voient donc que votre langue d'origine. Le mode Hybride corrige cela.
Moteurs de recherche et bots d'IA
Obtenez une page entièrement traduite de la part de Proxylang. Google, Bing, Naver, ChatGPT, Perplexity et les aperçus de liens (Slack, LinkedIn, Facebook) en font partie.
Your visitors
Conservez votre site exactement tel qu'il est aujourd'hui, traduit par la balise script. Votre hébergement, vos analyses et vos tests A/B ne sont pas affectés.
Les sites sur Wix, Squarespace, Webflow et les constructeurs similaires ne peuvent pas modifier le DNS de cette manière, ils restent donc sur la balise script.
Comment l'activer
Il n'y a pas d'interrupteur « Hybride ». L'état Hybride est ce que vous obtenez lorsque le DNS Proxy et la Balise Script sont tous deux activés pour le même domaine.
Ouvrez votre domaine, puis l'onglet Configuration
Domaines votre domaine Configuration.
Turn on DNS Proxy
Ajoutez les enregistrements DNS que nous vous indiquons chez votre registraire de domaine, puis vérifiez. C'est l'étape qui permet aux moteurs de recherche d'atteindre Proxylang.
Keep Script Tag on
Vos visiteurs continuent d'utiliser la balise script que vous avez déjà installée.
Done
Lorsque les deux sont activés, le badge du domaine affiche « Hybride (SEO) ». Désactivez l'un ou l'autre et le site repasse sur l'autre mode sans interruption de service.
Coût
Les visites des bots utilisent des mots de votre solde, au quart du tarif normal. Trois limites empêchent un crawl excessif de l'épuiser. Vous pouvez réduire chacune d'elles sur la page SEO, sous Paramètres.
Mots par jour pour les bots
Une fois la limite atteinte, les bots reçoivent votre langue d'origine jusqu'à minuit UTC. Réglez la valeur sur 0 pour arrêter totalement la traduction par les bots.
- Start
- 3,000
- Pro+
- 20,000
Budget per page
Part d'une page qu'une visite de bot peut traduire, en tokens IA (environ 2,7 par mot). Par défaut 4 000. Le titre, la description et les titres de sections ne sont jamais comptés.
- Start
- 8,000
- Pro+
- 50,000
Visites par jour, bots non vérifiés
Google, Bing, Apple, DuckDuckGo et Yandex sont vérifiés par leur adresse réseau et ne sont pas limités. Tout le reste partage ce plafond.
- Start
- 5
- Pro+
- 10
Quand l'utiliser
- You want your pages to rank in other languages.
- You want AI search tools to quote your translated pages.
- You do not want Proxylang in the path of real visitors. Hybrid keeps them on your own server.
Les pages protégées par une connexion ne tirent aucun avantage du mode Hybride. Gardez-les sur la balise script.
Suivant : Sites multiples et sous-domaines
Sites multiples et sous-domaines
Ajoutez des sous-domaines gratuitement et plus de domaines racines avec le plan Start et supérieur. Tous les sites partagent un seul solde de mots.
Ce que vous pouvez ajouter
- Subdomains of a site you already added (app.yourdomain.com, shop.yourdomain.com). Free on every plan. They do not count toward your domain limit.
- Separate root domains (yourdomain.com and yourapp.io). Needs the Start plan or above, which carries as many as you like. Test Drive and Lite cover one site.
Tous vos sites partagent un seul solde de mots. Un deuxième site n'ajoute pas de mots ; il puise dans le même réservoir.
Si vous passez à un plan inférieur plus tard, rien ne sera hors ligne. Vous conservez tous les sites que vous avez déjà ajoutés. Vous ne pourrez simplement plus en ajouter tant que vous n'aurez pas repassé sous la limite.
Ce qu'un sous-domaine hérite
Un sous-domaine suit son domaine racine. Il bénéficie du même mode de connexion, des mêmes langues, des mêmes paramètres de sitemap et des mêmes commutateurs de l'onglet Avancé. Vous les configurez une seule fois sur la racine.
Si la racine utilise le mode DNS Proxy ou Hybrid, chaque sous-domaine nécessite également ses propres enregistrements DNS. L'application affiche les enregistrements exacts à ajouter : quatre pour un domaine racine (le domaine nu, www et deux enregistrements de vérification), deux pour un sous-domaine.
Quel mode pour quel site
Site marketing ou page d'atterrissage
Hybrid mode
Vous voulez être trouvé dans d'autres langues. Utilisez le mode Hybrid si votre forfait et votre site le permettent (forfait Lite ou supérieur, site construit avec du code). Sinon, la balise script assure tout de même la traduction pour les visiteurs.
Application ou portail client
Script tag
Les pages protégées par une connexion ne sont jamais indexées, il n'y a donc aucun bénéfice de recherche à rechercher. Aucun changement DNS, rien dans le chemin de trafic.
Features
Chat en Direct
Une bulle de chat qui traduit dans les deux sens. Un seul abonnement, tous les sites, agents illimités.
Ce que cela fait
Une bulle de chat sur votre site. Les visiteurs écrivent dans leur langue. Vous lisez et répondez dans la vôtre. Les deux côtés sont traduits au fur et à mesure. Un seul abonnement couvre tous les sites de votre compte, avec autant d'agents que vous le souhaitez.
Activer
Ouvrez le domaine, allez dans l'onglet Chat en Direct et activez l'interrupteur. La bulle apparaît sur votre site et le site s'affiche dans votre console de chat à Chat .
- On Start and above, chat is already included with your plan. Nothing to buy and no trial to start.
- On Test Drive and Lite, every account gets one 14-day trial with 2,000 translated messages. No card needed. The trial is per account, not per site.
- When nobody is online, visitors see "We are away" and can leave their email. You answer by email from the console. Turn this off in widget settings if you prefer.
Ajoutez votre équipe
- On the Live Chat tab, in the Agents card, type a teammate's email and click Invite . Seats are free and unlimited.
- They get a link, good for seven days. They enter the name visitors will see and the language they want to read chats in.
- They see that site's conversations only, marked "Shared". No settings, no billing.
Supprimez quelqu'un à l'aide du bouton Supprimer sur sa ligne.
Répondre aux chats
- The console has three panes: conversations, the open chat, and visitor details (page they are on, country, past chats).
- Having the console open makes you "Online". Click the pill to go "Away"; visitors then get the offline form.
- Type
/in the reply box for quick replies (hello, order, refund, shipping). - You can send images up to 10 MB. Edit a sent message and the visitor's translation is redone.
- If a teammate is already answering, your reply box locks so the visitor never gets two answers.
- Under Chat settings → Widget , set the bubble colour, position, greeting and the name visitors see. The greeting is shown as written and is not translated yet.
Applications de bureau et mobiles
La page Téléchargements contient l'application de bureau pour macOS, Windows et Linux. Elle vous envoie des alertes et des badges de messages non lus même lorsque le navigateur est fermé, et se met à jour automatiquement. Les applications iPhone et Android sont indiquées comme étant bientôt disponibles.
La connexion ouvre votre navigateur habituel un instant, puis revient à l'application. C'est un comportement normal.
Ce que comprend chaque forfait
Seuls les messages traduits sont comptabilisés. Les messages dans la même langue sont gratuits. Le quota mensuel est partagé entre vos sites et est réinitialisé le 1er du mois.
- Test Drive and Lite include no chat plan beyond the trial. Bigger chat plans are a monthly add-on, priced on the Live Chat page.
- At the limit, chat keeps running but messages arrive untranslated and new conversations wait until the 1st. A chat already in progress always finishes.
- Hiding the "Powered by Proxylang" line in the chat window needs the Pro plan or above.
Suivant : Traduction d'images
Traduction d'images
Redessinez le texte à l'intérieur des bannières et des images de produits dans la langue du visiteur.
Installation
1. Buy credits
La traduction d'images est activée pour chaque domaine. Votre solde de crédits est la seule restriction. Achetez un pack dans la section Facturation . Les packs sont valables 12 mois.
- 10 images
- $5 / ₩7,000
- $0.50 per image
- 50 images
- $20 / ₩28,000
- $0.40 per image
- 100 images
- $35 / ₩49,000
- $0.35 per image
2. Choisissez les images à traduire
Seules les images que vous sélectionnez sont traduites. Trois méthodes, de la plus simple à la plus complexe :
- Live Editor. Open your site, press Escape twice, sign in, click Image Translation in the editor bar and tap the images. Works on any platform.
- Paste image addresses. On the domain's Image Translations tab, use Auto-Translate Images by URL . Good for site builders where you cannot edit HTML.
- Tag the HTML. Add
data-pl-translate-imageto the image tag.
<!-- Only tagged images are translated -->
<img src="/hero-banner.png" data-pl-translate-image alt="Welcome" />
<!-- Any image source works -->
<img src="https://cdn.example.com/promo.jpg" data-pl-translate-image />Fonctionnement et tarifs
- The first visitor in a language sees the original image. Translation runs in the background, usually under two minutes, then the translated image replaces it on the page without a refresh.
- Every visitor after that gets the translated image instantly. It is kept forever.
- One credit per image, per language. The same banner in Korean and Japanese costs two credits.
- Images whose longer side is over 2000px cost two credits per language. Tall product detail images usually fall in this group.
- Visitors reading your site in its own language never use credits.
Fonctionne dans tous les modes. Avec la méthode « coller les adresses d'images », la correspondance s'exécute dans le navigateur du visiteur, ce qui nécessite la balise script (balise script ou mode Hybride).
Quoi traduire
Translate these
- Banners with text on them
- Infographics and charts with labels
- Product images with printed details
- Screenshots with on-screen text
Ne pas taguer ces éléments (toujours facturés)
- Photos with no text
- Logos and icons
- SVG files and GIFs
Les formats PNG, JPG et WebP sont pris en charge. Les fichiers très volumineux sont redimensionnés avant la traduction. 33 langues cibles sont prises en charge ; la liste se trouve sur l'onglet Traductions d'images du domaine.
Suivant : Traduction de la recherche
Traduction de la recherche
Traduisez ce que les visiteurs tapent dans votre barre de recherche, afin qu'ils obtiennent des résultats dans n'importe quelle langue.
Installation
1. Buy searches
Payé avec des crédits de recherche prépayés. Achetez un pack dans la section Facturation . Les packs n'expirent jamais.
- 10,000 searches
- $9.99 / ₩13,900
- 50,000 searches
- $39.99 / ₩55,900
- 200,000 searches
- $139.99 / ₩194,000
2. Activez-le par domaine
Ouvrez le domaine, allez dans l'onglet Avancé et activez Traduire les requêtes de recherche . L'interrupteur reste désactivé tant que vous n'avez pas de crédits. Cela peut prendre jusqu'à cinq minutes pour atteindre votre site en ligne, donc patientez avant de tester.
Comment ça marche
If your search box is a normal form, or its field is named q, query, search, keyword, term or s, it works with no changes. When the visitor presses Enter, Proxylang translates the query and your search receives the translated text.
<form action="/search" method="GET">
<input type="search" name="q" />
<button type="submit">Search</button>
</form>- Runs from the script tag, so it works in script tag and Hybrid mode. Not on DNS Proxy-only sites.
- Visitors reading your site in its own language are not affected and use no credits.
- Each search uses one credit, including repeats. Translated queries are remembered per domain, so repeats are instant.
- If translation takes longer than 4.5 seconds, the original query is sent through instead. Visitors never wait on a spinner.
Barres de recherche qui filtrent une liste sur la page
Certaines barres de recherche n'envoient jamais rien à un serveur. Elles filtrent une liste déjà présente sur la page (une FAQ, une grille de produits). Celles-ci nécessitent un attribut sur l'input :
<!-- Translate when the visitor presses Enter (default) -->
<input type="text" placeholder="Search..." data-proxylang-reverse-search />
<!-- Translate as they type, after a short pause -->
<input type="text" placeholder="Search..." data-proxylang-reverse-search="live" /> By default the query is translated when the visitor presses Enter. Add ="live" to translate as they type, after a short pause. Live mode uses more credits, one per pause.
Aidez la traduction avec du contexte
A one-word query can mean many things. Proxylang uses the Site Description from your Brand & Context tab to pick the right meaning. For one specific search box you can override it with data-proxylang-search-context="..." on the input (up to 240 characters).
Conseils
- Keep Enter mode unless your search really needs results while typing. It costs a fraction of live mode.
- Write a clear Site Description. "Korean skincare shop" gives better query translations than "our website".
- Test in a private window with the site switched to another language.
Limites connues
- Queries over 200 characters are passed through untranslated.
- When credits reach zero, searches pass through untranslated. Buying a pack turns it back on within a minute.
- For developers: searches sent by
form.submit()in code are not intercepted; use a normal submit. For fetch requests, only the query parameters and top-level JSON fields are translated. GraphQL requests are skipped.
Suivant : Apparence du sélecteur de langue
Apparence du sélecteur de langue
Tout ce qu'il faut savoir sur le menu de langue visible par les visiteurs : son emplacement, son apparence et son déclenchement.
Ce que vous pouvez modifier
- Activate Switcher
- The on/off switch for the widget on this site. Also holds a test key for trying the script on your own computer.
- Layout
- Floating in a corner, or inline where you place it. Starting corner. Whether visitors can drag it.
- Appearance
- Button size, menu size, corner shape, shadow, and whether languages show as "EN", "English" or both.
- Colors
- Six ready-made themes, or your own colours for light and dark mode.
- Behavior
- Shrink to an icon after a few seconds, menu animation, and a soft fade when translated text appears.
- Branding
- Hide the "Translation by Proxylang" line in the menu. Start plan and above.
- Loading Indicators
- A spinner, a thin bar at the top, both, or nothing while a page translates.
- Dark Mode Detection
- Follow the visitor's system setting, or tell Proxylang which CSS class your site uses for dark mode.
- Advanced
- Stacking order, the width at which the mobile layout kicks in, and the right-to-left auto-flip switch.
Les modifications sont appliquées sur votre site en quelques secondes, cinq minutes maximum. Si vous ne les voyez pas, actualisez la page.
Quelle langue le visiteur reçoit en premier
Rien à configurer. Lors de la première visite, Proxylang analyse les langues préférées du navigateur du visiteur et choisit la meilleure correspondance parmi les langues que vous avez activées. Si aucune ne correspond, il utilise le pays du visiteur, puis la langue propre à votre site. Ensuite, le choix du visiteur est mémorisé pendant un an.
To test another language, open your site in a private window, or add ?lang=ko-KR to the address.
Intégrez le sélecteur dans votre propre menu
Under Layout, choose Inline and place <div id="proxylang-widget"></div> where the switcher should appear, for example in your header. For a second spot in a mobile menu, add <div id="proxylang-widget-mobile"></div> as well.
Suivant : Analytics & usage
Your account
Analyses et utilisation
Découvrez qui visite votre site dans quelle langue, et où vos mots sont diffusés.
Qui visite, dans quelle langue
L'onglet Analytics de votre tableau de bord affiche les visiteurs, les visites, les pages, la provenance des utilisateurs, leur pays et leur appareil, ainsi que la part de ceux qui lisent une version traduite. Aucun cookie n'est utilisé ; les visiteurs sont comptabilisés à partir d'une empreinte numérique cryptée qui ne peut pas être transformée en adresse.
- A visit ends after 30 minutes without activity.
- Bots are hidden by default, and so is your own traffic from a development machine. Use the Filter button to show them.
- Detailed records are kept for 90 days.
- The Visitor Map shows the same data on a world map.
Où vos mots sont diffusés
L'onglet Dashboard affiche la consommation de votre forfait. Les onglets Metrics et Pages détaillent l'utilisation par jour, par langue et par page.
- A sentence costs words once, the first time it is translated for your site. Showing it again is free.
- Bot visits in Hybrid and DNS Proxy mode count at a quarter of the rate. The chart shows "Visitor words" and "Bot words" separately.
- A page view is one page opened by a real visitor in a translated language. Bots, visitors reading the original language, and your own testing on localhost do not count.
- You get an email at 75%, 90% and 100% of your allowance.
Suivant : Forfaits, facturation & crédits
Forfaits, facturation & crédits
Ce que chaque forfait inclut, ce qui se passe une fois la limite atteinte, et le fonctionnement des crédits et des codes.
Ce qu'un forfait vous offre
Chaque forfait dispose d'un quota de mots, d'un quota mensuel de vues de pages, d'un nombre de langues et d'un nombre de sites. Le quota de mots est un total cumulé, pas un montant mensuel : une phrase n'est comptabilisée que la première fois qu'elle est traduite, et elle reste traduite par la suite. Chaque langue compte séparément : une page de 500 mots consultée en trois langues utilise 1 500 mots. Avec le forfait Start et les suivants, les visiteurs peuvent choisir parmi les 77 langues disponibles, et le forfait définit combien d'entre elles sont indexées par les moteurs de recherche. Les robots (crawlers) récupèrent chaque langue indexée, ce sont donc ces langues qui consomment des mots sans visiteur direct.
Mots : un total cumulé une seule fois
Vues de pages : réinitialisées le 1er du mois
| Plan | Words (total) | Page views / month | Languages | Sites |
|---|---|---|---|---|
| Test Drive | 2,000 | 1,500 | 1 | 1 |
| Lite | 20,000 | 15,000 | 5 | 1 |
| Start | 100,000 | 50,000 | All 77 (3 indexed) | Unlimited |
| Pro | 500,000 | 150,000 | All 77 (10 indexed) | Unlimited |
| Business | 2,500,000 | 750,000 | All 77 (25 indexed) | Unlimited |
Test Drive
- Words (total)
- 2,000
- Page views / month
- 1,500
- Languages
- 1
- Sites
- 1
Lite
- Words (total)
- 20,000
- Page views / month
- 15,000
- Languages
- 5
- Sites
- 1
Start
- Words (total)
- 100,000
- Page views / month
- 50,000
- Languages
- All 77 (3 indexed)
- Sites
- Unlimited
Pro
- Words (total)
- 500,000
- Page views / month
- 150,000
- Languages
- All 77 (10 indexed)
- Sites
- Unlimited
Business
- Words (total)
- 2,500,000
- Page views / month
- 750,000
- Languages
- All 77 (25 indexed)
- Sites
- Unlimited
- Global, Enterprise and Custom plans are arranged through the Custom card on the pricing page.
- Lite and above add per-language SEO and Hybrid mode. Pro and above add DNS Proxy mode.
- Words used up. New text stays in the original language until you upgrade. Text already translated keeps showing, and the language switcher keeps working. There is no overage charge.
- Page views used up. The same happens for one month, then the whole site is served in its original language until the next month or an upgrade.
- Bot visits in Hybrid and DNS Proxy mode count at a quarter of the rate.
- Yearly billing is ten months for twelve.
- Moving to a smaller plan never takes a site offline. You keep what you have and cannot add more until you fit.
Modifier ou annuler
- Open Billing and pick a plan under Available Plans . A change takes effect at once. The price difference is settled on your next invoice.
- New subscriptions on Start or Pro (monthly, paid in USD, outside Korea) start with a 14-day free trial.
- Korean customers pay in KRW through KG이니시스, with VAT shown separately. Yearly Korean plans are a one-time payment you renew by hand. Cancel with the 해지 button; you keep access to the end of the period.
- Every charge and receipt is under Payment History at the top of the Billing page.
Crédits image et recherche
Les forfaits payants incluent un lot de crédits unique lors de votre premier abonnement : Lite (2 images et 500 recherches), Start (10 images et 2 000 recherches), Pro (30 images et 2 000 recherches), Business et Global (100 images et 2 000 recherches). Passer à un forfait supérieur n'ajoute que la différence. Les crédits inclus n'expirent jamais et sont accordés une seule fois par compte, et non à chaque montée en gamme.
Si vous épuisez vos crédits, achetez-en davantage sous forme de packs prépayés sur la page Billing, sur la page Image Translation ou sur la page Reverse Search. Les packs sont partagés entre vos sites. Les packs d'images achetés sont valables 12 mois et vous recevez un e-mail 30 jours avant leur expiration ; les packs de recherche achetés n'expirent jamais.
L'achat s'ouvre dans un nouvel onglet. Votre solde sur la page Billing se met à jour lorsque vous y revenez.
Codes promo
- Outside Korea there is no code box. Your discount is attached to your account and applied at checkout on its own.
- In Korea, the code box is on the Billing page while you are on the free plan. Codes apply to the first payment only.
- Discounts do not stack. The largest one wins.
Parrainez un ami
Votre lien se trouve sur la page Referral. Un ami qui s'inscrit via ce lien bénéficie de 15 % de réduction sur son premier forfait. Lorsqu'il s'abonne, votre prochain paiement mensuel bénéficie de 50 % de réduction, une fois par ami. Le lien est mémorisé pendant 90 jours. Les packs ne comptent pas, seuls les forfaits le font.
Suivant : Référence des attributs
For developers
Référence des attributs, API JavaScript et événements, API Chat en Direct, Content Security Policy, langues de droite à gauche.
For developers
Référence des attributs, API JavaScript et événements, API Chat en Direct, Content Security Policy, langues de droite à gauche.
Référence des attributs
For developersChaque classe, attribut et marqueur de commentaire que Proxylang lit dans votre HTML.
Browser (Navigateur) désigne la balise script et les pages que les visiteurs chargent en mode Hybrid. Server (Serveur) désigne les pages que Proxylang génère pour les moteurs de recherche en mode Hybrid et pour tout le monde en mode DNS Proxy. Both (Les deux) signifie les deux.
Skip
class="proxylang-no-translate"Both- Skip this element and everything inside it.
data-proxylang-no-translateBoth- Same as the class.
class="notranslate"Browser- Google’s standard skip class. Honoured as well.
translate="no"Browser- The HTML standard skip attribute. Honoured as well.
data-pl-skipBrowser- Short form of the skip attribute.
<!-- @proxylang-do-not-translate-start --> … <!-- @proxylang-do-not-translate-end -->Server- Skip a region of HTML. JS files use the same words after //.
class="proxylang-bot-only-no-translate"Server- Keep the original wording for search engines only. Visitors still get the translation.
data-proxylang-bot-only-no-translateServer- Attribute form of the bot-only skip.
<!-- @proxylang-bot-only-do-not-translate-start --> … <!-- @proxylang-bot-only-do-not-translate-end -->Server- Comment form of the bot-only skip.
Hint
data-pl-context="…"Server- A hint for the translator about this element (“button label”, “product name”).
data-pl-max-chars="N"Server- Keep the translation at or under N characters. Useful for fixed-width buttons.
data-proxylang-search-context="…"Browser- Context for translating what visitors type in this search box.
Force
data-pl-retranslate="token"Both- Translate this element again, bypassing every cache. Change the token to trigger it. Must be switched on for your domain by Proxylang support.
data-no-url-path-langBrowser- On the script tag itself. Your own router owns /xx-xx/ paths, so Proxylang will not read the language from the URL.
Features
data-pl-translate-imageBoth- Translate the text in this image. See Image translation.
data-proxylang-reverse-searchBrowser- Translate what visitors type in this search box. See Search translation.
class="proxylang-flip-on-rtl"Both- Mirror this element for right-to-left languages.
data-pl-no-rtl-fixBoth- Leave this element out of the right-to-left animation fixes.
Also skipped without markers: <pre> and <code> everywhere; <kbd>, <var> and <samp> on the server; <script>, <style>, <svg>, <math>, form inputs and iframes.
Suivant : API JavaScript et événements
API JavaScript et événements
For developersLisez la langue active, créez votre propre sélecteur et réagissez aux changements.
window.Proxylang
Disponible dans la balise script, en mode Hybrid et en mode DNS Proxy.
| Method | Returns | Description |
|---|---|---|
getCurrentLanguage() | string | Active language code, e.g. "ko-KR". |
getBaseLanguage() | string | The site’s own language. |
getLanguages() | Array | Enabled languages as { code, english, native, isBase }. Empty until the config has loaded. |
setLanguage(code) | Promise<void> | Switch language. Navigates the page. Unknown codes are ignored with a console warning. |
isReady() | boolean | True once the widget has initialised. |
onReady(fn) | void | Runs fn when ready, or at once if already ready. |
isTranslated() | boolean | True once the first translation pass has finished. |
onTranslated(fn) | void | Runs fn when the first pass finishes, or at once if it already has. |
onLanguageChange(fn) | () => void | Runs fn on every switch. Returns a function that unsubscribes. |
window.Proxylang.getCurrentLanguage() // "ko-KR"
window.Proxylang.getBaseLanguage() // "en-US"
window.Proxylang.getLanguages()
// [{code: "en-US", english: "English", native: "English", isBase: true},
// {code: "ko-KR", english: "Korean", native: "한국어", isBase: false}, ...]
window.Proxylang.setLanguage("fr-FR") // navigatesProxylang:ready
Fired on document once the widget has initialised. detail carries language and baseLanguage .
window.Proxylang.onReady(() => {
console.log(window.Proxylang.getCurrentLanguage())
})
document.addEventListener('proxylang:ready', (e) => {
console.log(e.detail.language, e.detail.baseLanguage)
})Proxylang:translated
Fired on document exactly once per page load, when the first translation pass has finished. It never fires again, not for added content or client-side navigation. It is guaranteed within about five seconds; if the safety cap fires first, detail.timedOut is true and language may be null. Use it to remove a loading overlay.
document.addEventListener('proxylang:translated', (e) => {
console.log(e.detail.language) // "ko-KR", or null if timedOut
console.log(e.detail.baseLanguage) // "en-US"
console.log(e.detail.timedOut) // true if the 5s cap fired first
document.getElementById('loading-overlay')?.remove()
})
// Same thing, callback style. Runs at once if already finished.
window.Proxylang.onTranslated(() => { /* ... */ })Proxylang:languagechange
Fired on document when the visitor switches language, with detail.language . Callbacks run before the page navigates, so an analytics call may not finish sending. Use your analytics library's beacon or "transport: beacon" option.
// Returns a function that unsubscribes
const stop = window.Proxylang.onLanguageChange((lang) => {
navigator.sendBeacon('/analytics', JSON.stringify({ event: 'language_change', lang }))
})
// Or listen for the DOM event
document.addEventListener('proxylang:languagechange', (e) => {
console.log(e.detail.language)
})
// Later, e.g. when a component unmounts
stop()Débogage
- Add
?proxylang_debug=1to any page address to get verbose logs in the console. - In DNS Proxy mode a
proxylang:translatingevent fires onwindowwithdetail.loadingtrue or false around each re-translation. - Framework apps: the script waits for hydration before touching the page. If your app re-renders text after that, the observer picks it up and translates it.
Suivant : API JavaScript Chat en Direct
API JavaScript Chat en Direct
For developersInsérez du texte dans la fenêtre de chat, ouvrez-la via vos propres boutons et indiquez à votre équipe qui est le visiteur.
$Proxylang
The chat loads with your Proxylang script tag. Send it commands by pushing them onto window.$proxylang . Commands pushed before the chat has loaded wait and run in order once it has.
- The commands use the same format as Crisp's
$crisp. A page already wired to Crisp moves over by renaming$crispto$proxylang. - Commands the chat does not know are ignored. They never throw an error on your page.
$proxylang.get()and$proxylang.is()exist only after the chat has loaded. Before that,$proxylangis a plain array.
// Safe to run before the chat has loaded. Commands wait, then run in order.
window.$proxylang = window.$proxylang || []
$proxylang.push(['do', 'chat:open'])Insérer du texte dans la fenêtre de chat
| Command | What it does |
|---|---|
['set', 'message:text', [text]] | Fills the reply box. The visitor can edit it and presses send themselves. Nothing reaches your team until they do. |
['do', 'message:show', ['text', text]] | Shows a message from your team in the chat. Only this visitor sees it, only on this page. It is not sent to your team or saved, and a reload removes it. |
['do', 'message:send', ['text', text]] | Sends a message as the visitor. Your team gets it in the console, translated like any other message. |
- Text is capped at 4,000 characters. Empty text is ignored.
message:textandmessage:showappear exactly as you write them. They are not translated. Pick the text for the visitor's language yourself withwindow.Proxylang.getCurrentLanguage().- A
message:showmessage while the window is closed adds to the unread count on the chat bubble.
// A "Request a quote" button: open the chat with a message ready to send
function requestQuote() {
$proxylang.push(['set', 'message:text', ['Hi, I would like a quote for the Pro plan.']])
$proxylang.push(['do', 'chat:open'])
}
// A message from your team, shown only to this visitor on this page
$proxylang.push(['do', 'message:show', ['text', 'Questions about plans? Ask us here.']])
// A message sent as the visitor. Your team gets it in the console.
$proxylang.push(['do', 'message:send', ['text', 'I need help with order #1042']])Ouvrir et fermer
| Command | What it does |
|---|---|
['do', 'chat:open'] | Opens the chat window. |
['do', 'chat:close'] | Closes it. |
$proxylang.is('chat:opened') | True while the window is open. |
Indiquer à votre équipe qui est le visiteur
Votre équipe les voit dans le volet visiteur de la console de chat. Pour qu'un e-mail soit vérifié, signez-le sur votre serveur avec le secret de Chat settings › Widget › Verified visitor emails . La signature est l'HMAC-SHA256 de l'e-mail, au format hexadécimal.
| Command | What it does |
|---|---|
['set', 'user:email', [email, signature]] | The visitor’s email. Add the signature to mark it verified. |
['set', 'user:nickname', [name]] | The name your team sees. |
['set', 'user:avatar', [url]] | Picture address. https only. |
['set', 'user:phone', [phone]] | Phone number. |
['set', 'user:company', [name, { url, description }]] | Company name, with an optional website and description. |
['set', 'session:data', [[[key, value], ...]]] | Up to 32 key/value pairs. Values are text, numbers or true/false. Keys are cut to 40 characters and text values to 200. Pushing again adds new keys and overwrites existing ones; keys are never removed until session:reset. Once there are 32 keys, new keys are skipped without an error. |
['set', 'session:event', [[[name, data, colour]]]] | Adds entries to the visitor’s timeline. Colour is red, orange, yellow, green, blue, purple, pink, brown, grey or black. |
$proxylang.get('user:email') | Reads back a value you set. Works for every user: key and for session:data. |
['do', 'session:reset'] | Starts a new visitor in this browser. Call it when a user signs out, so the next person to sign in does not see their chats or take over their email. |
$proxylang.push(['set', 'user:email', [user.email, signature]])
$proxylang.push(['set', 'user:nickname', [user.name]])
$proxylang.push(['set', 'user:company', ['Acme', { url: 'https://acme.com' }]])
// Key/value pairs shown in the visitor pane
$proxylang.push(['set', 'session:data', [[['plan', 'pro'], ['orders', 3]]]])
// Timeline entries: name, optional data, optional colour
$proxylang.push(['set', 'session:event', [[['checkout-failed', { total: 120 }, 'red']]]])
// When the user signs out: start a new visitor in this browser
$proxylang.push(['do', 'session:reset'])
// Once the chat has loaded
$proxylang.get('user:email')
$proxylang.is('chat:opened')Suivant : Content Security Policy
Politique de sécurité contenu
For developersLa plupart des sites n'ont pas de Content Security Policy. Si personne n'en a configuré pour votre site, passez cette section.
En avez-vous besoin ?
A CSP is a rule list that tells the browser which scripts and servers a page may use. If your site has one, it can block Proxylang. The sign: translations never appear and there is no error on the page. Open the browser console (F12) and look for a line starting with Refused to and mentioning Content Security Policy.
Balise script et mode Hybrid
The script loads from proxy.proxylang.dev and Live Chat from chat.proxylang.dev . It also fetches translations, swaps in translated images and adds a few inline styles. Add these sources to your existing policy:
# Add these sources to your existing policy.
# script-src: the Proxylang script, plus 'unsafe-inline' for the small styles/scripts it injects
# connect-src: translation, image and chat requests (wss:// is the Live Chat socket)
# img-src: translated images are served from Proxylang storage
Content-Security-Policy:
script-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev 'unsafe-inline';
style-src 'self' 'unsafe-inline';
connect-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev wss://chat.proxylang.dev;
img-src 'self' data: https:Mêmes règles qu'une balise meta, si c'est ainsi que votre site définit sa politique :
<meta http-equiv="Content-Security-Policy"
content="script-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev 'unsafe-inline'; style-src 'self' 'unsafe-inline'; connect-src 'self' https://proxy.proxylang.dev https://chat.proxylang.dev wss://chat.proxylang.dev; img-src 'self' data: https:">Mode DNS Proxy
Les traductions sont ajoutées sur le serveur, donc la plupart des politiques fonctionnent telles quelles. Seule une politique bloquant tous les scripts inline nécessite un changement : Proxylang ajoute de petits scripts inline pour maintenir les traductions en place pendant le chargement de la page.
# Only needed if your policy blocks all inline scripts:
Content-Security-Policy: script-src 'self' 'unsafe-inline'Suivant : Langues de droite à gauche
Langues de droite à gauche
For developersL'arabe, l'hébreu, le persan et l'ourdou se lisent de droite à gauche. Proxylang inverse la mise en page pour vous.
Ce qui se fait automatiquement
When a visitor picks a right-to-left language, Proxylang sets dir="rtl" on the page so text, menus and layout mirror. When an Arabic or Hebrew site is shown in English, it sets dir="ltr" and overrides any CSS that pins the direction, so the layout flips back.
- Any right-to-left target gets
dir="rtl", even if the source is already right-to-left. - Left-to-right to left-to-right leaves the page untouched.
- In script tag and Hybrid mode the page paints in its original direction first and flips once the script runs. DNS Proxy mode flips on the server with no flash.
Pour désactiver l'inversion pour un domaine, utilisez l'interrupteur sur la page du sélecteur de langue. Elle ne devient active qu'une fois qu'une langue de droite à gauche est activée sur ce domaine.
Miroir d'une flèche ou d'une icône
Directional graphics (a "next" arrow, a back icon) do not mirror on their own. Add the proxylang-flip-on-rtl class to any element that should.
<!-- Mirrored when the page is right-to-left -->
<img src="/arrow-next.svg" class="proxylang-flip-on-rtl" />
<svg class="proxylang-flip-on-rtl">...</svg>Corrections d'animations et désactivation
Certaines animations paraissent incorrectes lorsqu'elles sont inversées. Proxylang ajoute des correctifs CSS pour les cas les plus courants : les barres de progression et de chargement se remplissent par la droite, les tickers et les marquees conservent leur sens de défilement, les carrousels et les sliders continuent de fonctionner, et les barres NProgress restent en haut de la page.
If one of those fixes breaks something on your site, add data-pl-no-rtl-fix to that element and Proxylang leaves it alone. The one exception is NProgress, which is styled by its own class and cannot be excluded this way.
For your own CSS, two variables follow the reading direction: --pl-transform-origin-start and --pl-transform-origin-end .