Explainers

CAPTCHA Yerelleştirmesi: Dil Ayarları Zorlukları Nasıl Etkiler?

Dil ayarları bir CAPTCHA'nın nasıl göründüğünü değiştirir, nasıl çözüldüğünü değil. Token tabanlı CAPTCHA'larda (reCAPTCHA, Turnstile) locale ne olursa olsun geçerli bir token alırsınız; resim tabanlı CAPTCHA'larda ise dil, ekrandaki karakterleri doğrudan belirlediği için çözüm parametresini etkiler. Bu ayrımı bilmek, otomasyon akışınızda hangi durumda dil ayarıyla uğraşmanız, hangi durumda hiç dokunmamanız gerektiğini netleştirir. Aşağıda locale sinyallerinin CAPTCHA'ya nasıl yansıdığını ve her senaryoyu pratikte nasıl ele alacağınızı görürsünüz.

Locale neyi değiştirir, neyi sabit tutar?

CAPTCHA sağlayıcısı Yerelleşen kısım Sabit kalan kısım
reCAPTCHA Arayüz metni, resim etiketleri, ses dili sitekey, doğrulama akışı, token biçimi
Turnstile Widget metni ve hata mesajları sitekey, token biçimi, çözüm mekanizması
hCaptcha Doğrulama talimatları, kategori etiketleri sitekey, token biçimi
Resim/OCR Karakter seti, metnin dili Resim biçimi, gönderme/sorgulama akışı

Çözüme etkisi: token mü, resim mi?

Token tabanlı CAPTCHA'lar (reCAPTCHA, Turnstile)

Dil ayarları arayüzü etkiler, token'ı değil. CaptchaAI'nin reCAPTCHA ve Turnstile çözümü locale'den bağımsızdır:

  • sitekey ve sayfa URL'sini gönderin
  • CaptchaAI geçerli bir token döndürür
  • Token, widget hangi dilde görünürse görünsün çalışır

Token tabanlı CAPTCHA'larda CaptchaAI'yi çağırırken herhangi bir dil parametresine ihtiyaç yoktur. hCaptcha da aynı token mantığıyla çalışır; ancak CaptchaAI şu anda hCaptcha çözümü sunmadığı için bu türü otomasyona dahil ederken planınızı desteklenen türlere göre yapılandırın.

Resim CAPTCHA'ları

Dil, doğrudan görüntüdeki karakterleri belirler; bu yüzden language parametresini karakter setine göre ayarlamanız gerekir:

Site dili CAPTCHA içeriği CaptchaAI dil parametresi
İngilizce "Enter the text: XKCD42" 0 (varsayılan/Latin)
Rusça "Введите текст: ШКАФ" 1 (Kiril) veya 2
Çince "请输入验证码: 汉字" 2 (Latin dışı)
Arapça "أدخل النص: عربي" 2 (Latin dışı)
Japonca "文字を入力: ひらがな" 2 (Latin dışı)

Somut bir örnek: Türkiye'den erişilen BLS vize randevu portallarının çoğu Türkçe arayüz sunar ama resim CAPTCHA'sı Latin karakterlerden oluşur — bu durumda language=0 yeterlidir. Arayüzün dili sizi yanıltmasın; parametreyi metnin gerçekten hangi karakter setinde olduğuna göre seçin.

Ses CAPTCHA'ları

reCAPTCHA ses doğrulamaları, hl parametresi veya Accept-Language başlığıyla eşleşen dilde seslendirilir. CaptchaAI bunları standart reCAPTCHA çözüm akışıyla ele alır; çözüm yöntemi ses diline bağlı değildir.

CAPTCHA sağlayıcıları dili nasıl belirler?

Sağlayıcılar dili ve bazen CAPTCHA türünü birkaç sinyalden çıkarır. Otomasyonda tutarlılığı bu sinyalleri hizalayarak sağlarsınız.

Geo-IP konumu

Bazı yapılandırmalar doğrudan IP bölgesine göre değişir:

Sinyal Etki
Çin'den IP reCAPTCHA yerine GeeTest gelebilir (reCAPTCHA Çin'de engellidir)
AB'den IP CAPTCHA'dan önce GDPR onayı çıkabilir
Kısıtlı bölgeden IP Daha katı doğrulamalarla karşılaşılabilir

Accept-Language başlığı

Accept-Language: ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7

Bu başlık sunucuya sırasıyla Japonca (Japonya), İngilizce (ABD) ve genel İngilizce tercihini bildirir. reCAPTCHA ve Turnstile arayüz dilini bu değere göre seçer.

HTML hl parametresi

reCAPTCHA yüklenirken açık bir dil parametresi kabul eder:

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

hl parametresi Accept-Language başlığını geçersiz kılar. Çözüm sırasında bunu eşleştirmeniz gerekmez; CaptchaAI arayüz dilinden bağımsız olarak bir token döndürür.

Tarayıcı navigator.language değeri

JavaScript tabanlı CAPTCHA'lar tarayıcının dilini okur:

navigator.language       // "en-US"
navigator.languages      // ["en-US", "en", "ja"]

Headless tarayıcılarda bu değerler varsayılan olarak sistem yerel ayarına düşer. Hedefinize uyacak şekilde açıkça ayarlayın — örneğin Türkçe bir siteyi test ederken tr-TR locale'i kullanabilirsiniz:

// 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',
});

Sık karşılaşılan yerelleştirme sorunları

Kazıma akışı ile hedef site arasında dil uyumsuzluğu

Veri kazıma akışınız Japonca bir siteye Accept-Language: en-US gönderirse CAPTCHA İngilizce görünebilir. Token tabanlı CAPTCHA'larda bu bir sorun değildir; ancak site sinyaller arasındaki tutarlılığı denetliyorsa Accept-Language başlığını sitenin birincil diliyle hizalamak akışınızı daha kararlı kılar.

Bölgeye göre değişen sağlayıcılar

Bazı ülkeler farklı CAPTCHA sağlayıcıları kullanır; aynı senaryo için karşınıza çıkacak tür bölgeye göre değişebilir:

Bölge Tipik sağlayıcılar
Batı pazarları reCAPTCHA, Turnstile, hCaptcha
Çin GeeTest, Tencent CAPTCHA, özel resim
Rusya/BDT Özel resim CAPTCHA'ları, reCAPTCHA
Güney Kore Özel kaydırıcılar, resim CAPTCHA'ları

Sorun giderme

Sorun Sebep Çözüm
reCAPTCHA beklenenden farklı bir dil gösteriyor Betik etiketindeki hl ile Accept-Language uyuşmuyor Token dilden bağımsızdır — çözümü etkilemez
Resim CAPTCHA'sında yanlış karakterler tanınıyor language parametresi karakter setiyle eşleşmiyor Latin dışı CAPTCHA'lar için language=2 ayarlayın
Site bölgeye göre farklı CAPTCHA türü sunuyor Geo-IP tabanlı sağlayıcı seçimi Hedef bölgeyle eşleşen proxy'yi kullanın
Headless tarayıcı yanlış locale gösteriyor Varsayılan sistem yerel ayarı kullanılıyor Locale'i tarayıcı bağlamında açıkça ayarlayın
Ses CAPTCHA'sı beklenmedik dilde hl başlığı geçersiz kılıyor CaptchaAI'nin token tabanlı çözümünü etkilemez

Sık sorulan sorular

language parametresini ne zaman ayarlamam gerekir?

Yalnızca resim/OCR CAPTCHA'larında. Token tabanlı türlerde (reCAPTCHA, Turnstile) bu parametreye hiç dokunmayın. Resim CAPTCHA'larında ise değeri, metnin göründüğü karakter setine göre seçin: Latin için 0, Kiril için 1, Latin dışı için 2.

reCAPTCHA'nın hl değerini token almak için eşleştirmem gerekir mi?

Hayır. hl yalnızca arayüz dilini belirler; döndürülen token'ın geçerliliğini etkilemez. CaptchaAI'ye yalnızca sitekey ve sayfa URL'sini gönderirsiniz, arayüz hangi dilde olursa olsun token çalışır.

Headless tarayıcıda locale yanlış görünüyorsa ne yapmalıyım?

Locale'i tarayıcı bağlamında açıkça belirtin — Playwright'ta newContext({ locale }), Puppeteer'da setExtraHTTPHeaders ile Accept-Language. Sistem varsayılanına güvenmeyin; sunucu ile client sinyallerinin aynı dili göstermesi tutarlılığı artırır.

Çin'den gelen trafik neden farklı bir CAPTCHA türü alıyor?

reCAPTCHA Çin'de engellendiği için birçok site o bölgedeki ziyaretçilere GeeTest gibi alternatif sağlayıcılar sunar. Bu bir dil ayarı değil, Geo-IP tabanlı bir sağlayıcı seçimidir; karşılaşacağınız tür kullandığınız çıkışın bölgesine bağlıdır.

CaptchaAI Türkçe resim CAPTCHA'larını çözer mi?

Evet. Türkçe metin Latin karakter seti kullandığı için resim/OCR akışında language=0 ile çözülür. Yalnızca Kiril, Çince, Arapça gibi Latin dışı setlerde parametreyi 1 veya 2 olarak değiştirmeniz gerekir.

Sonraki adımlar

CAPTCHA'ları her locale'de tutarlı biçimde yönetin — CaptchaAI API anahtarınızı alın ve dil ayarlarınızı doğru yapılandırın.

İlgili rehberler:

Bu makale için yorumlar devre dışı bırakılmıştır.