Yerelleştirme testi, çok uluslu bir web uygulamasını piyasaya sürmeden önce ülkeye göre yerelleştirilmiş içerik testi yapmanın kritik adımıdır. Coğrafi hedefli konut proxy'leri ile yerelleştirme testi, QA ekiplerinin gerçek kullanıcı IP'leri üzerinden farklı pazarlardaki içerik, fiyat, para birimi ve yasal uyarıları doğrulamasını sağlar. Bu rehber, yerelleştirme testinin ne olduğunu, i18n'den nasıl ayrıldığını ve ProxyHat gibi konut proxy altyapılarıyla ölçekli bir locale matrisi kurulmasını adım adım ele alır.
Coğrafi Hedefli Konut Proxy'leri ile Yerelleştirme Testi Nedir?
Yerelleştirme testi (l10n), bir uygulamanın belirli bir bölge veya dil için doğru şekilde uyarlandığını doğrulama sürecidir. Uluslararasılaştırma testi (i18n) ise uygulamanın altyapısının farklı dilleri, karakter setlerini ve bölgesel formatları destekleyecek şekilde tasarlandığını garanti eder. İkisi birbirini tamamlar ama farklı katmanları test eder.
i18n QA coğrafi testi şu gibi teknik temel katmanları kapsar:
- Karakter kodlaması (UTF-8 desteği, Çince/Korece karakterler)
- Tarih/saat formatları (ABD:
MM/DD/YYYY, Almanya:DD.MM.YYYY) - Sayı ve para birimi formatları (ABD:
1,234.56, Türkiye:1.234,56) - RTL (sağdan sola) düzen desteği (Arapça, İbranice)
- Dinamik metin genişlemesi (Almanca kelimeleri ~%30 daha uzundur)
Yerelleştirme testi ise bu temelin üzerindeki pazar spesifikifik doğrulamaları içerir:
- Çevrilmiş metin dizilerinin doğru görüntülenmesi
- Bölgesel para birimi ve CTA metinleri (örn. "Sepete Ekle" vs "Add to Cart")
- Coğrafi yönlendirmeler (geo-redirects) ve
hreflangetiketleri - Bölgesel yasal uyarılar (GDPR için AB, CCPA için Kaliforniya)
- CDN üzerinden sunulan bölgesel kreatif reklamlar
W3C'nin Uluslararasılaştırma Aktivitesi, i18n ve l10n arasındaki farkı ve her birinin gerektirdiği test yaklaşımlarını detaylı şekilde tanımlar. Yerelleştirme testinin en zor kısmı, içeriğin gerçek bir kullanıcı gibi doğru coğrafi konumdan görüntülendiğini doğrulamaktır; işte burada coğrafi proxy yerelleştirme testi devreye girer.
VPN ve Staging Alt Alan Adları Neden Yetsiz Kalır?
Birçok QA ekibi yerelleştirme testi için VPN kullanır veya staging ortamında staging-de.example.com gibi alt alan adları oluşturur. Bu yaklaşımlar küçük ölçekte çalışır ama ölçek büyüdükçe ciddi darboğazlar yaratır.
VPN'in sınırlamaları:
- El ile geçiş maliyeti: Her ülke için VPN sunucusunu değiştirmek 30–60 saniye sürer; 20 pazar × 5 release = 100 manuel geçiş.
- Tek IP havuzu: VPN sağlayıcıları genellikle datacenter IP'leri kullanır; bu IP'ler CDN ve bot koruma sistemleri tarafından işaretlenmiş olabilir.
- Eşzamanlılık kısıtı: Çoğu VPN aynı anda yalnızca 5–10 cihaza izin verir; paralel test koşumu imkansızdır.
- Şehir seviyesinde hedefleme eksikliği: Birçok VPN yalnızca ülke seçimi sunar, şehir seviyesinde konum belirtilemez.
Staging alt alan adlarının sınırlamaları:
- Üretim CDN'si ve edge yapılandırması bypass edilir; gerçek geo-redirect davranışı test edilemez.
- CDN-served kreatifler ve bölgesel A/B testleri staging'de çalışmaz.
- Gerçek IP tabanlı coğrafi yönlendirme mantığı devre dışı kalır.
Konut proxy'leri bu sorunları çözer. Coğrafi hedefli konut proxy'leri, gerçek İSS'lere atanmış IP'ler kullanarak test trafiğinin gerçek bir kullanıcıdan gelmesini sağlar. ProxyHat kullanıcı adında coğrafi bayraklar ile ülke ve şehir seviyesinde hedefleme yapılabilir:
# İtalya, Milano IP'si
http://user-country-IT-city-milan:pass@gate.proxyhat.com:8080
# Japonya IP'si
http://user-country-JP:pass@gate.proxyhat.com:8080
# Sabit oturum (çok adımlı akışlar için)
http://user-country-DE-session-abc123:pass@gate.proxyhat.com:8080
Bu yaklaşım, 20+ pazarı paralel olarak test etmenize olanak tanır; her browser context kendi proxy'sine sahip olur ve gerçek bir kullanıcı gibi görünür. ProxyHat'ın desteklediği konum listesi üzerinden hedef pazarlarınızı seçebilirsiniz.
Her Locale İçin Ne Doğrulanmalı?
Bir locale matrisi oluşturduğunuzda, her bölge için aşağıdaki kontrol listesini sistematik şekilde çalıştırmalısınız:
1. Coğrafi Yönlendirmeler ve hreflang
Kullanıcı doğru ülke sürümüne yönlendiriliyor mu? <link rel="alternate" hreflang="de-DE"> etiketleri doğru URL'lere mi işaret ediyor? Google'ın yerelleştirilmiş sürümler dokümantasyonu, hreflang hatalarının dizine eklenmeyi ve sıralamayı nasıl etkilediğini açıklar. Proxy üzerinden her bölgeye bağlanıp hreflang etiketlerinin tutarlılığını doğrulayın.
2. Yerelleştirilmiş Para Birimi ve CTA'lar
Sayfada doğru para birimi gösteriliyor mu? Almanya'da € ve 1.234,56 formatı, ABD'de $ ve 1,234.56 formatı. CTA metinleri çevrilmiş mi? Sepet toplamı doğru yuvarlanıyor mu?
3. Bölgesel Yasal Uyarılar
AB ziyaretçilerine GDPR çerezi onay banner'ı gösteriliyor mu? Kaliforniya IP'leri için CCPA "Satışımı Paylaşma" bağlantısı görünüyor mu? Bu uyarılar IP tabanlı coğrafi tespit ile tetiklenir ve staging ortamında test edilemez.
4. CDN-Served Kreatifler
Bölgesel kampanya banner'ları, yerel tatil temaları ve bölgesel ürün görselleri doğru CDN edge'inden geliyor mu? Konut proxy'si ile gerçek bir kullanıcının gördüğü kreatifi doğrulayabilirsiniz.
5. Dil ve Karakter Doğrulama
Sayfa <html lang="ja"> doğru ayarlı mı? RTL dillerde (Arapça, İbranice) düzen sağdan sola akıyor mu? Almanca uzun kelimeler buton taşmasına yol açıyor mu?
Build-vs-Buy ve ROI Analizi
Yerelleştirme testi altyapısını kurmak mı yoksa hazır bir proxy servisi kullanmak mı daha mantıklı? Somut rakamlarla karşılaştıralım.
Senaryo: 20 Pazar × 6 Release/Yıl
Bir e-ticaret şirketi 20 ülkede faaliyet gösteriyor ve her yıl 6 release çıkarıyor. Her release için her pazarda yerelleştirme testi gerekiyor.
| Yaklaşım | Kurulum Maliyeti | Release Başına Maliyet | Yıllık Toplam | Paralellik |
|---|---|---|---|---|
| Manuel VPN geçişi (1 QA) | $0 | 20 pazar × 45 dk = 15 saat × $60/saat = $900 | $5,400 | Sıralı (tek kişi) |
| Kendi proxy altyapısı (self-hosted) | $8,000+ (sunucu + IP satın alma + bakım) | $200 (sunucu + bakım) | $9,200 | Yüksek |
| ProxyHat konut proxy'leri | $0 | ~$150 (20 pazar × ~750 istek) | $900 | Yüksek |
Manuel VPN yaklaşımı ilk bakışta bedava görünür ama gizli maliyeti yüksektir: Her release'de 15 saatlik manuel geçiş süresi, insani hata riski (yanlış VPN konumu unutulması) ve paralellik eksikliği. 6 release'de bu 90 saatlik QA zamanı demektir; bu süre bir mühendisin yaklaşık 2 haftalık tam zamanlı işine eşdeğerdir.
Kendi proxy altyapısı kurmak (build) teknik olarak mümkündür ama 20 ülkede gerçek konut IP'leri sağlamak son derece zordur. IP blokları satın almak, proxy sunucuları yönetmek ve bunları güncel tutmak ayrı bir mühendislik projesidir. İlk yıl maliyeti kolayca $8,000+ seviyesine ulaşır ve bakım sürekli gerektirir.
Hazır proxy servisi (buy) yaklaşımı ise en düşük toplam maliyete sahiptir. ProxyHat gibi bir servis, esnek fiyatlandırma ile ödeme başına kullanım sunar. 20 pazar × 6 release × ~750 istek = ~90,000 istek/yıl; bu hacim aylık yaklaşık $75–150 maliyetle yönetilebilir.
Önemli ROI noktası: Manuel VPN yaklaşımında her hata production'da yakalanır ve ortalama bir production bug'ı düzeltme maliyeti $1,000+ olabilir. Tek kaçırılan yerelleştirme hatası (örn. yanlış para birimi), proxy servisinin bir yıllık maliyetini telafi eder.
Playwright ile Locale Matrisi Otomasyonu
Aşağıdaki Playwright snippet'i, bir locale matrisini dolaşır, her bölge için yeni bir browser context oluşturur, ProxyHat proxy'sini context'e atar ve sayfadaki para birimi/dil doğrulaması yapar.
const { chromium } = require('playwright');
const localeMatrix = [
{ country: 'DE', city: 'berlin', expectedLang: 'de', expectedCurrency: 'EUR', expectedPricePattern: /\d{1,3}(\.\d{3})*,\d{2}/ },
{ country: 'US', city: 'newyork', expectedLang: 'en', expectedCurrency: 'USD', expectedPricePattern: /\d{1,3}(,\d{3})*\.\d{2}/ },
{ country: 'JP', city: 'tokyo', expectedLang: 'ja', expectedCurrency: 'JPY', expectedPricePattern: /¥[\d,]+/ },
{ country: 'TR', city: 'istanbul', expectedLang: 'tr', expectedCurrency: 'TRY', expectedPricePattern: /\d{1,3}(\.\d{3})*,\d{2}/ },
];
(async () => {
const browser = await chromium.launch({ headless: false });
for (const locale of localeMatrix) {
const proxyUrl = `http://user-country-${locale.country}-city-${locale.city}:pass@gate.proxyhat.com:8080`;
const context = await browser.newContext({
proxy: { server: proxyUrl },
locale: `${locale.expectedLang}-${locale.country}`,
});
const page = await context.newPage();
await page.goto('https://example.com');
// hreflang kontrolü
const htmlLang = await page.getAttribute('html', 'lang');
console.log(`[${locale.country}] html lang: ${htmlLang}`);
// Para birimi kontrolü
const priceText = await page.textContent('.product-price');
if (priceText && locale.expectedPricePattern.test(priceText)) {
console.log(`[${locale.country}] ✓ Para formatı doğru: ${priceText}`);
} else {
console.error(`[${locale.country}] ✗ Para formatı hatalı: ${priceText}`);
}
await context.close();
}
await browser.close();
})();
Bu pattern, web scraping use case'lerinde de kullanılan proxy rotation mantığıyla aynıdır; tek fark assertion'ların scraping yerine QA doğrulaması olması. Daha fazla örnek için ProxyHat dokümantasyonunu inceleyebilirsiniz.
Yaygın Tuzaklar ve Çözümleri
1. Çerez/IP Coğrafi Konum Uyuşmazlığı
Kullanıcı önce ABD'den siteye girer, bir çerez ayarlanır, sonra Almanya proxy'sine geçer. Site çerezdeki ABD konumunu kullanmaya devam edebilir ve Alman içeriği göstermeyebilir. Çözüm: Her context için çerezleri temizleyin veya yeni context kullanın. Playwright her newContext() çağrısında izole bir çerez havuzu oluşturur.
2. Çok Adımlı Akışlarda Sabit Oturum
Sepet → ödeme → onay akışında proxy her istekte IP değiştirirse, oturum tabanlı sistemler (ödeme gateway'leri) şüpheli işlem flag'leyebilir. Çözüm: Çok adımlı akışlar için sticky session kullanın: user-country-DE-session-abc123. Bu, aynı IP'nin tüm akış boyunca korunmasını sağlar.
3. CDN Cache Mismatch
Bazı CDN'ler IP yerine X-Forwarded-For başlığını kullanır; proxy bu başlığı doğru ayarlamazsa yanlış bölge içeriği cache'lenebilir. ProxyHat HTTP proxy'leri standart başlık iletimini destekler, ancak CDN'iniz özel yapılandırma gerektiriyorsa test öncesi doğrulayın.
4. Rate Limiting ve 429 Hataları
Paralel locale testinde tek bir IP'den çok fazla istek gelirse rate limiting tetiklenebilir. Çözüm: İstekler arasına 200–500ms gecikme ekleyin veya rotation modunu kullanın. ProxyHat SERP tracking senaryoları için de bu pattern'i önerir.
5. Bot Koruması ve CAPTCHA
Konut proxy'leri datacenter proxy'lere göre bot korumasından çok daha az etkilenir, ancak Cloudflare veya Akamai gibi gelişmiş sistemler yine de challenge gösterebilir. Çözüm: Gerçekçi davranış模拟 için headless: false kullanın, mouse hareketleri ekleyin ve istek hızını sınırlayın.
ProxyHat Kurulumu ve İç Yapılandırma
ProxyHat ile yerelleştirme testine başlamak için dashboard'tan kimlik bilgilerinizi alın ve yukarıdaki kullanıcı adı formatını kullanın. HTTP proxy için gate.proxyhat.com:8080, SOCKS5 için gate.proxyhat.com:1080 kullanın. Ülke ve şehir bayrakları kullanıcı adında -country-XX-city-yyyy formatıyla eklenir.
Stratejik öneri: Locale matrisinizi bir JSON dosyasında tutun ve CI/CD pipeline'ınıza yerelleştirme testi aşaması ekleyin. Her release'de otomatik olarak 20+ pazar doğrulansın; QA ekibi yalnızca başarısız assertion'ları incelesin. Bu yaklaşım, manuel VPN testine kıyasla release başına 15 saatlik tasarruf sağlar ve hata yakalama oranını %80+ artırır.
Temel Çıkarımlar
- Yerelleştirme testi (l10n) pazar spesifik içerik, para birimi ve yasal uyarıları doğrular; i18n testi ise teknik altyapıyı (karakter setleri, formatlar, RTL) test eder. İkisi birlikte çalışır.
- VPN ve staging alt alan adları ölçekli yerelleştirme testi için yetersizdir; paralellik sunmazlar ve gerçek geo-redirect davranışını bypass ederler.
- Konut proxy'leri, gerçek İSS IP'leri ile her şehirden gerçek kullanıcı gibi görünmenizi sağlar; ProxyHat kullanıcı adında
-country-XX-city-yyyyformatı ile hedefleme yapılır. - Build-vs-buy analizinde hazır proxy servisi en düşük toplam maliyete sahiptir; 20 pazar × 6 release senaryosunda yıllık ~$900 vs VPN'de $5,400+ gizli maliyet.
- Çok adımlı akışlar için
-session-abc123ile sticky session kullanın; her context için izole çerez havuzu oluşturun. - Playwright ile locale matrisi otomasyonu, her release'de 20+ pazarı paralel doğrulamanızı sağlar.
Yerelleştirme testi stratejinizi bir sonraki seviyeye taşımak için ProxyHat fiyatlandırmasını inceleyin ve locale matrisinizi bugün kurmaya başlayın.






