Yerine (ya da en azından ek olarak) IP adresi ülkeye bakarken, Accept-Language
HTTP başlık ($_SERVER['HTTP_ACCEPT_LANGUAGE']
PHP) incelemek gerekir
Bu başlık genellikle dil ülke çiftleri içerir:
en-US, hi_IN, fr, de;q=0.5
PHP intl extension has methods that help parsing it.
Problems with IP lookup:
Normal kullanıcıların adres IP-geo veritabanlarında sınıflandırılır nasıl kendi IP adresini değiştirmek veya becerisine sahip değilsiniz. Bu çok daha büyük olasılıkla kullanıcılarının Accept-Language
başlığı etkiler kendi işletim sistemi / tarayıcısı, / configure dil seçmek mümkün olduğunu bulunuyor.
Ülkedeki kullanıcı daha farklı ISS vekiller, örneğin vardır AOL rotalar bazı uluslararası trafik ABD üzerinden, pek çok mobil kullanıcılar Norveç'te proxy sunucularını sahip olan Opera Mini'yi kullanın. Eğer IP 'arıyorsanız, en azından dikkate X-Forwarded-For
başlığını alır. Accept-Language
başlığı tür sorunlar olmadan vekiller geçirilir.
Ben hostip.info veritabanı kullanılarak ve eksik olabilir ve hatalar içerdiği bulunmuştur oldum. Ayrıca 3. parti PHP komut dosyası HTTP isteği yapan her zaman sitenizi yavaşlatmak ve kendi kaynaklarını boşa gidiyor düşünün. Accept-Language
başlığının ayrıştırma arınmıştır.
Eğer sadece ülkeyi istemiyorum, ama dil kullanıcılar konuşuyor, o IP → Ülke farklı dilin konuşulduğu ülkeler için doğru olmayacaktır. Accept-Language
(Fransızca Kanada için fr_CA
, örneğin nl_BE
Belçika'da Hollandaca) size daha kesin bilgi verebilir.
Ne yöntem% 100 doğru olduğunu, bu nedenle kullanıcıların seçimini geçersiz kılmak izin akıllıca olacaktır.
Ayrıca "doğru" domain yönlendirmeleri zorlamak eğer büyük olasılıkla bir ABD IP adresinden gelen ve tercih edilen bir dil belirtin olmayacak gibi o arama motorları botlarının, dizin tüm etki etmek mümkün olmayacaktır unutmayın. En iyisi not .com
dışındaki etki alanlarına algılama uygulamak ve / veya ana dışındaki sayfalara uygulamak değildir.