PHP kullanıcı dilini algılar - istikrarlı bir çözüm

2 Cevap

Şu anda kullanıcının dilinde içeriği sağlayan bir oto-kullanıcı-dil-algılama üzerinde çalışıyorum.

Tabii olası elle dilini değiştirmek, ancak bir kullanıcı ben onun dilinde içerik sunmak istiyoruz ilk defa sayfasını ziyaret ederse. etmek

Yani googling ve böyle bir sonuç elde etmek için $ _SERVER ['HTTP_ACCEPT_LANGUAGE']-Var bulundu:

de-de, de; q = 0.8, en-us; q = 0.5, tr, q = 0.3

nedir "EN" / "DE" / "IT" gibi kesin bir sonuç almak için bu sonucu filtre en iyi yolu nedir?

$rL = $_SERVER["HTTP_ACCEPT_LANGUAGE"]; //  de-de, de; q = 0.8, en-us; q = 0.5, tr, q = 0.3
$langCode = strtoupper($rl[0].$rl[1]);

Bu Sunucu-Var ile ilgili ikinci konu tarayıcı bazı bilgileri sağlamak eğer onun bana sadece bir sonuç vermesidir. Bir varsayılan sayfa dil olduğunu işlemek için tek olasılık ayarlıyor?

Ben ilgileniyorum ikinci ihtimal IP tarafından dili elde etmektir. Yani Dili alırsanız muhtemelen kullanıcının dilini biliyorum. Ama nedir İsviçre, Belçika gibi çoklu-dil-ülkede? Nedir TLD'ler gibi. Com /. Net / ile. Org vb.

Yani hangi yöntemi kullanıcıların dili algılamak için geçerli olacak?

yardım için teşekkürler.

2 Cevap

Accept-Language şaşmayın. Bütün tarayıcılar başlığını geçmek ve çok daha kullanıcı geolocation ham tahmin daha istediği dil olması olasıdır.

PECL http_negotiate_language, hangi başlık ayrıştırmak ve sizin için uygun bir dil seçmek, sadece en / de / arayan pratikte hatta biraz sahte yöntem olsa da olabilir var it dizesinde IP koklama daha iyi çalışır.

Nedir TLD'ler gibi. Com /. Net / ile. Org vb.

Alan adları genellikle IP probably bazı ülkeye bağlı IP aralıkları kendi arka uç veritabanına sahip olan, koklama dahil değildir. Ülke tahmin için ters çözünürlüklü birkaç IP'ler olarak hemen hemen hiçbir faydası yoktur tersine kararlılığını bir ccTLD için.

En iyi uygulama olarak, ben Zend Framework gelen gerçekten de gelişmiş Zend_Locale bileşenleri ile gidecek.

Bu kullanıcının yerel ayarları algılama uluslararası para birimi, sayı, tarih biçimlendirme ve çeviri yönetimi çözümleri geniş bir numaraya, uygulama i18n ve lokalize için gereken her şey var.