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