Não. Trocar o Accept-Language do scraper ou rodar um worker em outro país normalmente não muda como você resolve um CAPTCHA — só muda o que aparece na tela. Um reCAPTCHA com hl=ja fala japonês para o visitante, mas exige a mesma sitekey e devolve o mesmo token da versão em inglês. A exceção é o CAPTCHA de imagem, onde o idioma decide os caracteres da imagem — e aí você precisa avisar a CaptchaAI qual conjunto está lendo.
O CAPTCHA muda de idioma, mas a resolução quase nunca muda
reCAPTCHA e Turnstile: o idioma fica só na interface
Para reCAPTCHA v2/v3 e Cloudflare Turnstile — os dois tipos baseados em token que a CaptchaAI resolve — o idioma muda só a interface, nunca o token: você envia sitekey e URL, a CaptchaAI devolve um token válido, que funciona não importa o idioma do widget. Nenhum parâmetro de idioma é necessário.
O hCaptcha localiza a interface do mesmo jeito, mas a CaptchaAI não suporta a resolução de hCaptcha, em nenhum idioma.
CAPTCHA de imagem: o idioma decide o parâmetro que você envia
Aqui a regra se inverte: o idioma do site aparece direto nos caracteres da imagem, e a CaptchaAI precisa saber qual conjunto está tentando ler:
| Idioma do site | Conteúdo do CAPTCHA | Parâmetro language da CaptchaAI |
|---|---|---|
| Inglês | "Enter the text: XKCD42" | 0 (padrão/latino) |
| Russo | "Введите текст: ШКАФ" | 1 (cirílico) ou 2 |
| Chinês | "请输入验证码: 汉字" | 2 (não latino) |
| Árabe | "أدخل النص: عربي" | 2 (não latino) |
| Japonês | "文字を入力: ひらがな" | 2 (não latino) |
Errar esse parâmetro é a causa mais comum de taxa de acerto baixa em CAPTCHA de imagem não latino — é o OCR no alfabeto errado, não uma falha da CaptchaAI.
CAPTCHA de áudio: mesma lógica do reCAPTCHA padrão
Os desafios de áudio do reCAPTCHA são narrados no idioma definido pelo parâmetro hl ou pelo cabeçalho Accept-Language. A CaptchaAI resolve esses desafios pelo fluxo padrão de reCAPTCHA — o método de resolução não muda com o idioma do áudio.
O que muda de fato entre provedores
- reCAPTCHA — interface, rótulos de imagem e idioma do áudio mudam; sitekey e token não.
- Turnstile — texto do widget e mensagens de erro mudam; sitekey e token não.
- hCaptcha — instruções e rótulos mudam; sitekey e token não mudam — mas o tipo continua sem suporte na CaptchaAI.
- Imagem/OCR — conjunto de caracteres e idioma do texto mudam; formato da imagem e fluxo de envio/consulta não.
De onde vem o idioma do desafio
Os provedores de CAPTCHA decidem o idioma a partir de sinais diferentes — nem sempre o mesmo sinal que o resto do seu scraper usa.
O cabeçalho Accept-Language
Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7
Isso diz ao servidor: prefira japonês (Japão), depois inglês (EUA), depois inglês genérico. reCAPTCHA e Turnstile usam esse cabeçalho para escolher o idioma da interface.
O parâmetro hl do reCAPTCHA
O reCAPTCHA aceita um parâmetro de idioma explícito no momento em que é carregado:
<!-- 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>
O hl tem prioridade sobre o Accept-Language, mas na resolução isso não importa — o token vem independente do idioma exibido.
Geolocalização por IP
Algumas configurações de CAPTCHA variam conforme a região do IP de origem:
- IP da China — pode vir GeeTest no lugar do reCAPTCHA (o reCAPTCHA é bloqueado no país).
- IP da UE — pode aparecer o aviso de consentimento GDPR antes do CAPTCHA.
- IP de região restrita — pode vir um desafio mais rigoroso.
navigator.language no navegador
CAPTCHAs baseados em JavaScript leem o idioma configurado no navegador:
navigator.language // "en-US"
navigator.languages // ["en-US", "en", "ja"]
Em navegadores headless, esses valores herdam a localidade do sistema por padrão — configure-os explicitamente para bater com o site alvo:
// 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',
});
Cenário comum em QA: um time em São Paulo roda workers em
sa-east-1, mas precisa validar o checkout para clientes no Japão. Sem fixarlocale: 'ja-JP'e oAccept-Language, o teste roda em português enquanto o cliente real vê tudo em japonês — CAPTCHA incluído.
Diferenças regionais entre provedores de CAPTCHA
Idioma incompatível entre o worker e o site alvo
Se o worker envia Accept-Language: en-US para um site japonês, o CAPTCHA pode renderizar em inglês — sem problema para tipos baseados em token, mas pode chamar atenção se o site cruzar o idioma com outros sinais da requisição.
O provedor muda junto com o país, não só o idioma
Alguns mercados usam provedores de CAPTCHA diferentes por padrão:
| Região | Provedores mais comuns |
|---|---|
| Mercados ocidentais | reCAPTCHA, Turnstile, hCaptcha |
| China | GeeTest, Tencent CAPTCHA, imagem personalizada |
| Rússia/CEI | CAPTCHAs de imagem personalizados, reCAPTCHA |
| Coreia do Sul | Sliders personalizados, CAPTCHAs de imagem |
Solução de problemas comuns
| Problema | Causa | Correção |
|---|---|---|
| reCAPTCHA aparece em idioma diferente do esperado | Parâmetro hl na tag do script não bate com o Accept-Language |
O token é independente do idioma — não afeta a resolução |
| CAPTCHA de imagem reconhecido com caracteres errados | Parâmetro language não corresponde ao script do CAPTCHA |
Defina language=2 para CAPTCHAs não latinos |
| O site exibe um tipo diferente de CAPTCHA por região | Seleção de provedor baseada em geo-IP | Use um proxy da região de destino |
| Navegador headless mostra a localidade errada | Localidade padrão do sistema sendo usada | Defina o locale explicitamente no contexto do navegador |
| CAPTCHA de áudio em idioma inesperado | Parâmetro hl sobrepõe o cabeçalho |
Não afeta a resolução baseada em token da CaptchaAI |
Perguntas frequentes
O parâmetro language da CaptchaAI muda para cada país que eu automatizo?
Só para CAPTCHA de imagem/OCR. Para reCAPTCHA e Turnstile você nunca informa idioma — a resolução segue o mesmo fluxo.
hCaptcha está entre os tipos que a CaptchaAI resolve?
Não, em nenhum idioma — o hCaptcha não é suportado atualmente pela CaptchaAI. Para reCAPTCHA v2/v3 e Cloudflare Turnstile a resposta é sim, e o idioma exibido não interfere.
Vale a pena configurar o Accept-Language do worker para bater com o idioma do site alvo?
Boa prática: alguns sites cruzam o Accept-Language com outros sinais da requisição, e configurá-lo para o idioma do site reduz atrito.
O parâmetro hl tem prioridade sobre o cabeçalho Accept-Language?
Sim. Quando os dois estão presentes, o reCAPTCHA usa o hl definido na tag do script. Isso muda apenas a interface exibida ao visitante — não afeta a resolução baseada em token da CaptchaAI, que ignora ambos os sinais.
Preciso simular o locale do navegador além do cabeçalho Accept-Language?
Para CAPTCHA de imagem e testes visuais, sim — navigator.language e o locale (Playwright/Puppeteer) devem bater com o Accept-Language. Para tipos baseados em token isso não afeta a resolução, mas ajuda a reproduzir o que um visitante real veria.
Próximos passos
Lide com CAPTCHA em qualquer localidade — obtenha sua chave de API da CaptchaAI e configure o idioma corretamente desde o primeiro request.
Guias relacionados:
- Conjunto de caracteres de CAPTCHA de imagem multilíngue
- Resolvendo CAPTCHAs em sites chineses
- Resolvendo CAPTCHAs em sites japoneses e coreanos