SORU
23 Mart 2009, PAZARTESİ


En iyi yolu belirlemek için Kullanıcı'In yerel tarayıcı içinde

Bir web sitem var (Flash) yerelleştirilmiş bir düzine Dil ve istediğim için otomatik tanımlama varsayılan değer olarak, kullanıcının tarayıcı ayarları için en aza indirmek için adımlar içeriğine erişmek için.

BİLGİNİZE, sunucu komut proxy kısıtlamaları nedeniyle kullanamazsınız, JavaScript olayın sorunu çözmek için uygun olur sanırım.

Soru:

  1. En iyi yöntem ne olacağını 'tahmin' kullanıcı yerel ayarı ?

  2. Varolan basit sınıfları orada bana yardım edebilecek fonksiyonlar (karmaşık yerelleştirme demetleri). Daha küçük bir sayı (çeviriler) akıllı bir şekilde tüm olası dil yıkmak için özel olarak .

  3. Hangi noktada böyle bir çözüm güvenebilir miyim ?

  4. Başka bir geçici çözüm veya öneriniz var mı ?

Şimdiden teşekkürler!

CEVAP
23 Mart 2009, PAZARTESİ


Doğru yolu Accept-Language HTTP üstbilgi sunucuya gönderilen bakmaktır. Bu kullanıcı tercih tarayıcısı yapılandırılmış dil emretti, ağırlıklı listesini içerir.

Ne yazık ki bu başlık içinde JavaScript okuma için kullanılamaz; tüm tarayıcı yüklü ne olduğunu size söyler navigator.language,. Bu mutlaka, kullanıcının tercih ettiği dili(ler) ile aynı şey değildir. YANİ sen yerine getir systemLanguage (OS yüklü dili) browserLanguage (aynı language) ve userLanguage (kullanıcı yapılandırılmış OS bölgesi), hepsi aynı şekilde yararsızdır.

Eğer geçirdim arasında bir seçim yapmak için bu özellikleri istiyorum koklamak için userLanguage ilk düşen geri language ve ancak bundan sonra (eğer o yoktu maç herhangi bir dil) browserLanguage ve son olarak systemLanguage.

Eğer sen-ebilmek koymak bir sunucu tarafı komut dosyası başka bir yerde net sadece okur Accept-Language başlık ve geri tükürür gibi bir JavaScript dosyası ile üstbilgi değeri dize, örn.:

var acceptLanguage= 'en-gb,en;q=0.7,de;q=0.3';

daha sonra a <script src^ içerebilir . HTML biçiminde bir dış hizmet işaret ve JavaScript dil Başlığı ayrıştırmak için kullanın. Bu, olsa da, Dil Kabul ayrıştırma hemen hemen her zaman sunucu tarafında yapılır çünkü mevcut herhangi bir kütüphane kodunu bilmiyorum.

İşin sonunda ne olursa olsun, kesinlikle her zaman bazı insanlar için yanlış tahmin için bir kullanıcı geçersiz kılmak gerekir. Genellikle en kolay URL dil ayarı (örn. koyabilirsin. vs http://www.example.com/de/site http://www.example.com/en/site ve kullanıcı ikisi arasındaki bağlantılar ' ı tıklatın izin ver. Bazen bu durumda çerez ayarı saklamak için iki dil sürümleri için tek bir URL istiyorsun, ama bu çerezler ve arama motorları için destek ile kullanıcı arayüzleri karışıklığa neden olabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • Viktorija A.

    Viktorija A.

    28 Mart 2009
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009