Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get browser language in ServiceWorker?

How to get browser language in ServiceWorker?

navigator.language || navigator.userLanguage; //not work
like image 668
Arthur Menezes Avatar asked Feb 05 '23 13:02

Arthur Menezes


1 Answers

This should work now according to the spec.

If your users are using an older version of Chrome, you have to rely on the language read from the global (regular) window.navigator.language and pass it to the Service Worker via navigator.serviceWorker.controller.postMessage. Here is the old Chrome tracking bug.

Alternatively, you can try reading Accept-Language header from your Requests in fetch event handler - event.request.headers.get('Accept-Language') - although it didn't work for me for some reason.

like image 172
NOtherDev Avatar answered Feb 08 '23 02:02

NOtherDev