JavaScript tespit tarayıcı dili tercih
Tarayıcı dil tercihi JavaScript kullanarak algılamaya çalışıyorum.
Tools>Internet Options>General>Languages
IE tarayıcı dilini ayarlamak nasıl bu değeri JavaScript kullanarak okumak mı?
Firefox için aynı sorun. tools>options>content>languages
ayarı navigator.language
kullanarak tespit edemiyorum.
navigator.userLanguage
kullanmadan ayar üzerinden yapılır algılar
Start>ControlPanel>RegionalandLanguageOptions>Regional Options
sekme.
navigator.browserLanguage
navigator.systemLanguage
ile denedim ama hiçbiri ilk ayar değeri(Tools>InternetOptions>General>Languages
) verir
Bir ayrıntılı olarak anlatılır link buldum ama soru cevapsız kalır :(
CEVAP
Asıl sorun burada tarayıcı ayarları aslında javascript ile elde edilen navigator.language
özelliği etki etmez bence.
Etkisi ne HTTP 'Kabul Dili' Başlığı, ama bu değeri javascript ile kullanılabilir değil gibi görünüyor. (Muhtemelen neden @anddoutoi sunucu tarafı içermeyen bir referans bulamıyor Birleşik Devletleri)
Geçici bir çözüm şifreledim: JSONP. üzerinden HTTP istek başlıklarını döndürür http://ajaxhttpheaders.appspot.com google app engine script hamile olduğum
(Not: Bu bir sadece kesmek için bu arka uç kullanılabilir yüklü değilse kullanılmalıdır. Genel olarak ana güven çok yüksek seviyede olmadığı sürece sayfalarında üçüncü taraflarca javascript dosyaları için arama yapmak olmamalıdır.)
Onu orada bırakmak ebediyen niyetindeyim kodunuzu kullanmak için çekinmeyin.
İşte bazı örnek kodu (jQuery) nasıl kullanabileceğiniz için
$.ajax({
url: "http://ajaxhttpheaders.appspot.com",
dataType: 'jsonp',
success: function(headers) {
language = headers['Accept-Language'];
nowDoSomethingWithIt(language);
}
});
Birisi bu yararlı bulur umuyoruz.
Edit: bu işlev sarar github üzerinde küçük bir jQuery eklentisi yazdım: https://github.com/dansingerman/jQuery-Browser-Language
Edit 2: istediğin Gibi AppEngine (süper gerçekten önemsiz): çalışan koddur
class MainPage(webapp.RequestHandler):
def get(self):
headers = self.request.headers
callback = self.request.get('callback')
if callback:
self.response.headers['Content-Type'] = 'application/javascript'
self.response.out.write(callback "(")
self.response.out.write(headers)
self.response.out.write(")")
else:
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write("I need a callback=")
application = webapp.WSGIApplication(
[('/', MainPage)],
debug=False)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Edit3: app engine kod burada kaynaklı açık: https://github.com/dansingerman/app-engine-headers
Javascript ile tarayıcı Android telefo...
javascript tarayıcı Sekmeyi Kapat/kapa...
Tarayıcı Dili tespit PHP...
Bir tespit "geçersiz tarih" ...
Nasıl JavaScript devre dışı olup olmad...