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.

WhereSetup

Configuration en quatre étapes

  1. Add your site

    Allez dans Configuration et saisissez l'adresse de votre site web. Choisissez la plateforme utilisée.

  2. 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.

  3. 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.

  4. 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

VisitorSearch engineYour serverProxylangsentences

Les moteurs de recherche lisent votre site original.

Hybrid

VisitorSearch engineYour serverProxylangsentences

Les moteurs de recherche accèdent aux pages traduites.

DNS Proxy

VisitorSearch engineYour serverProxylang

Tout le monde accède aux pages traduites.

Green arrow: traffic that goes through Proxylang. Dotted line: Proxylang reads your server behind the scenes.

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.

1Page loads from your server as usual2The script sends each sentence to Proxylang3Proxylang translates it and saves the result4The translated text is swapped innext visit: saved copy, instant
The first visit to a page translates as you watch. Every later visit uses the saved copy.

Avec le mode DNS Proxy ou Hybride, Proxylang se place entre le visiteur (ou le moteur de recherche) et votre serveur :

  1. A visitor opens a translated addressyourdomain.com/es-es/page

  2. Proxylang récupère la page originale depuis votre serveur

  3. L'IA traduit le texte visible

    La mise en page et le code restent exactement tels qu'ils étaient.

  4. La page traduite est sauvegardée et servie

    Le visiteur suivant la reçoit instantanément.

  5. 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.

WhereDomains › your domain › Brand & Context

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.

WhereGlossary

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.

WhereLive Editor, or press Esc twice on your site

Modifier une traduction

  1. 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 .
  2. Switch the site to the language you want to fix.
  3. 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.

  1. On the Live Editor page, find Invite a translator . Type their email.
  2. Under Can edit , leave All languages or pick only the languages they should touch.
  3. 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.

WhereYour HTML, or Domains › your domain › Advanced

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-translate class 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.

HTML
<!-- 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é.

HTML
<!-- @proxylang-do-not-translate-start -->
<div class="testimonial">
  Customer reviews stay exactly as written.
</div>
<!-- @proxylang-do-not-translate-end -->
JavaScript

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.

HTML
<!-- 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.


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.

WhereSEONeedsLite plan or above

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
What a page's head contains
<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
/sitemap.xml
<?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.txt is served with the sitemap lines added. Your own rules are kept.

Moteurs de recherche IA

  • robots.txt allows GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot and Google-Extended.
  • A /llms.txt file 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.

WhereDomains › your domain › SetupNeedsLite plan or above, site built with code

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.

  1. Ouvrez votre domaine, puis l'onglet Configuration

    Domaines  votre domaine  Configuration.

  2. 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.

  3. Keep Script Tag on

    Vos visiteurs continuent d'utiliser la balise script que vous avez déjà installée.

  4. 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.

Bot requestlimit 1Words todayover:original pagelimit 2Budget for this pageover:original pagelimit 3Visits today (unverified)over:original pageTranslated pageGoogle, Bing, Apple, DuckDuckGo, Yandex skip limit 3.

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
Free of charge. Bots that bring no visitors (SEO scrapers, uptime checkers) always get the original page and cost nothing.

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.

WhereDomains

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.

WhereDomains › your domain › Live ChatNeedsIncluded from Start up. 14-day trial on Test Drive and Lite

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

  1. On the Live Chat tab, in the Agents card, type a teammate's email and click Invite . Seats are free and unlimited.
  2. They get a link, good for seven days. They enter the name visitors will see and the language they want to read chats in.
  3. 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.

Start
Live Chat includedChat · 2,000 translated messages/mo
Pro
Live Chat includedChat Plus · 10,000 translated messages/mo
Business and above
Live Chat includedChat Scale · 50,000 translated messages/mo
  • 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.

WhereDomains › your domain › Image TranslationsNeedsImage credits (prepaid)

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-image to the image tag.
HTML
<!-- 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.

WhereDomains › your domain › AdvancedNeedsSearch credits (prepaid). Script tag or Hybrid mode

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.

A search form that just works
<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 :

HTML
<!-- 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.

WhereLanguage Switcher

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.

WhereDashboard › Analytics

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.

WhereBilling

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

each new sentence is counted once, then never again

Vues de pages : réinitialisées le 1er du mois

one count per page a visitor opens in a translated language
Both are shared across all your sites.

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.

Référence des attributs

For developers

Chaque 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 developers

Lisez 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.

MethodReturnsDescription
getCurrentLanguage()stringActive language code, e.g. "ko-KR".
getBaseLanguage()stringThe site’s own language.
getLanguages()ArrayEnabled 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()booleanTrue once the widget has initialised.
onReady(fn)voidRuns fn when ready, or at once if already ready.
isTranslated()booleanTrue once the first translation pass has finished.
onTranslated(fn)voidRuns fn when the first pass finishes, or at once if it already has.
onLanguageChange(fn)() => voidRuns fn on every switch. Returns a function that unsubscribes.
JavaScript
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")  // navigates

Proxylang:ready

Fired on document once the widget has initialised. detail carries language and baseLanguage .

JavaScript
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.

JavaScript
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.

JavaScript
// 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=1 to any page address to get verbose logs in the console.
  • In DNS Proxy mode a proxylang:translating event fires on window with detail.loading true 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 developers

Insé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 $crisp to $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, $proxylang is a plain array.
JavaScript
// 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

CommandWhat 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:text and message:show appear exactly as you write them. They are not translated. Pick the text for the visitor's language yourself with window.Proxylang.getCurrentLanguage() .
  • A message:show message while the window is closed adds to the unread count on the chat bubble.
JavaScript
// 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

CommandWhat 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.

CommandWhat 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.
JavaScript
$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 developers

La 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:

HTTP header
# 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 :

HTML meta tag
<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.

HTTP header
# 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 developers

L'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.

HTML
<!-- 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 .