La langue du navigateur change l'apparence d'un CAPTCHA, presque jamais sa résolution. Pour les CAPTCHA à token comme reCAPTCHA ou Cloudflare Turnstile, le texte affiché peut passer du français au japonais sans modifier le token renvoyé par CaptchaAI. Seuls les CAPTCHA image, dont les caractères dépendent directement de la langue, demandent un réglage particulier.
L'essentiel : la langue change l'affichage, pas le token
Pour les CAPTCHA basés sur un token, les paramètres de langue agissent sur l'interface du widget, jamais sur le token de validation. Le flux de résolution de CaptchaAI reste identique quelle que soit la langue :
- Vous envoyez le sitekey et l'URL de la page.
- CaptchaAI renvoie un token valide.
- Le token fonctionne quelle que soit la langue dans laquelle le widget s'est affiché.
Aucun paramètre de langue n'est donc requis quand vous appelez CaptchaAI pour reCAPTCHA ou Turnstile, et vous n'avez pas à maintenir une configuration de résolution par pays.
Le seul cas où la langue change la résolution : image et OCR
C'est l'unique situation où la langue entre dans le périmètre de la résolution : les caractères de l'image dépendent de la langue affichée, donc le paramètre language doit correspondre au jeu de caractères. Réglez-le d'après le script du site cible.
| Langue du site | Contenu du CAPTCHA | Paramètre language CaptchaAI |
|---|---|---|
| Anglais | "Enter the text: XKCD42" | 0 (par défaut / latin) |
| Russe | "Введите текст: ШКАФ" | 1 (cyrillique) ou 2 |
| Chinois | "请输入验证码: 汉字" | 2 (non latin) |
| Arabe | "أدخل النص: عربي" | 2 (non latin) |
| Japonais | "文字を入力: ひらがな" | 2 (non latin) |
CAPTCHA audio
Les défis audio de reCAPTCHA sont prononcés dans la langue correspondant au paramètre hl ou à l'en-tête Accept-Language. CaptchaAI les traite via son flux reCAPTCHA standard : la méthode ne dépend pas de la langue de l'enregistrement, vous n'avez donc rien à ajuster de ce côté.
Ce que chaque fournisseur localise
Chaque famille de CAPTCHA localise des éléments différents. Le tableau sépare ce qui bouge avec la langue de ce qui reste stable, quelle que soit la locale du visiteur.
| Fournisseur CAPTCHA | Ce qui se localise | Ce qui reste identique |
|---|---|---|
| reCAPTCHA | Texte de l'interface, étiquettes d'images, langue de l'audio | Sitekey, flux de vérification, format du token |
| Turnstile | Texte du widget et messages d'erreur | Sitekey, format du token, mécanisme de résolution |
| hCaptcha | Instructions du défi, étiquettes de catégories | Sitekey, format du token |
| Image / OCR | Jeu de caractères, langue du texte | Format de l'image, flux submit/poll |
Pour les trois premières lignes, seule la colonne de droite compte pour votre intégration, et elle ne bouge jamais. La ligne Image / OCR est la seule à faire entrer la langue dans la résolution.
Forcer une langue prévisible dans votre automatisation
Les fournisseurs choisissent la langue d'affichage à partir de plusieurs signaux. Maîtrisez-les pour obtenir une langue stable en test, plutôt que de subir la locale du système.
1. L'en-tête Accept-Language
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
Cet en-tête indique au serveur l'ordre de préférence : d'abord le japonais (Japon), puis l'anglais (États-Unis), puis l'anglais générique. reCAPTCHA et Turnstile s'en servent pour choisir la langue de leur interface.
2. Le paramètre HTML hl
reCAPTCHA accepte un paramètre de langue explicite au chargement du script :
<!-- Force English reCAPTCHA -->
<script src="https://www.google.com/recaptcha/api.js?hl=en"></script>
<!-- Force Japanese -->
<script src="https://www.google.com/recaptcha/api.js?hl=ja"></script>
Le paramètre hl prime sur l'en-tête Accept-Language. Côté résolution, inutile de le reproduire : CaptchaAI renvoie un token quelle que soit la langue de l'interface.
3. navigator.language dans le navigateur
Les CAPTCHA construits en JavaScript lisent la langue directement dans le navigateur :
navigator.language // "en-US"
navigator.languages // ["en-US", "en", "ja"]
Dans un navigateur headless, ces valeurs reprennent par défaut les paramètres régionaux du système. Fixez-les explicitement pour qu'elles correspondent à votre cible :
// Playwright
const context = await browser.newContext({
locale: 'ja-JP',
});
// Puppeteer
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
'Accept-Language': 'ja-JP,ja;q=0.9',
});
Quand le fournisseur change selon la région
La géolocalisation par IP ne modifie pas seulement la langue : elle peut changer le type de CAPTCHA servi, voire ajouter une étape avant le widget.
| Signal | Effet |
|---|---|
| IP depuis la Chine | Peut servir GeeTest à la place de reCAPTCHA (reCAPTCHA est bloqué en Chine) |
| IP depuis l'UE | Peut afficher un consentement RGPD avant le CAPTCHA |
| IP depuis une région restreinte | Peut déclencher des défis plus stricts |
Le point RGPD est concret pour un lecteur européen : une IP de l'UE ajoute souvent une bannière de consentement avant le widget, ce qui décale la position du CAPTCHA dans le DOM. Prévoyez ce passage dans vos sélecteurs.
| Région | Fournisseurs typiques |
|---|---|
| Marchés occidentaux | reCAPTCHA, Turnstile, hCaptcha |
| Chine | GeeTest, Tencent CAPTCHA, image personnalisée |
| Russie / CEI | CAPTCHA image personnalisés, reCAPTCHA |
| Corée du Sud | Curseurs personnalisés, CAPTCHA image |
Dernier piège fréquent : un scraper qui envoie Accept-Language: en-US à un site japonais reçoit souvent un CAPTCHA en anglais. Sans conséquence pour un CAPTCHA à token, mais certains sites recoupent cet en-tête avec d'autres signaux et signalent l'incohérence. Alignez l'en-tête sur la langue principale du site pour rester discret.
Dépannage
| Problème | Cause | Correctif |
|---|---|---|
| reCAPTCHA s'affiche dans une autre langue que prévu | Conflit entre le paramètre hl de la balise de script et l'en-tête Accept-Language |
Le token est indépendant de la langue — sans effet sur la résolution |
| Mauvais caractères reconnus sur un CAPTCHA image | Le paramètre language ne correspond pas au script du CAPTCHA |
Définissez language=2 pour les CAPTCHA non latins |
| Le site sert un type de CAPTCHA différent selon la région | Sélection du fournisseur basée sur la géo-IP | Utilisez un proxy correspondant à la région cible |
| Le navigateur headless affiche de mauvais paramètres régionaux | Paramètres régionaux du système utilisés par défaut | Définissez le locale explicitement dans le contexte du navigateur |
| CAPTCHA audio dans une langue inattendue | Le paramètre hl a la priorité sur l'en-tête |
Sans effet sur la résolution à token de CaptchaAI |
FAQ
Le paramètre hl change-t-il le token renvoyé ?
Non. Le paramètre hl ne touche qu'à la langue de l'interface reCAPTCHA. Le token produit reste valide et interchangeable, quelle que soit la langue affichée. Vous n'avez donc jamais à reproduire la valeur hl dans votre appel à CaptchaAI.
Quel paramètre language utiliser pour un CAPTCHA image en cyrillique ou en chinois ?
Pour du cyrillique, utilisez 1 ; pour du chinois, du japonais ou de l'arabe, utilisez 2. La valeur 0 couvre le latin par défaut. Ce réglage n'existe que pour les CAPTCHA image / OCR, où les caractères reconnus dépendent réellement de la langue.
Faut-il aligner l'en-tête Accept-Language sur le site cible ?
C'est recommandé pour la cohérence. Certains sites recoupent la langue de l'en-tête avec d'autres signaux et peuvent traiter une divergence comme un indice suspect. Fixez votre en-tête Accept-Language sur la langue principale du site pour limiter ce risque.
Pourquoi le même site me propose-t-il parfois un autre type de CAPTCHA ?
Parce que la sélection du fournisseur dépend souvent de la géolocalisation IP et du score de risque associé. Une IP chinoise peut recevoir GeeTest là où une IP européenne reçoit reCAPTCHA. C'est la logique de détection de votre scraper qui doit anticiper ce changement de type.
Prochaines étapes
Gérez les CAPTCHA dans n'importe quelle langue : récupérez votre clé API CaptchaAI et réglez les paramètres de langue de vos environnements de test.
Guides associés :
- Le jeu de caractères des CAPTCHA image multilingues
- Résoudre les CAPTCHA sur les sites web chinois
- Résoudre les CAPTCHA sur les sites web japonais et coréens