Package Exports
- get-user-locale
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (get-user-locale) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Get-User-Locale
A function that returns a BCP 47 locale tag, based on all available sources.
tl;dr
- Install by executing
npm install get-user-locale
oryarn add get-user-locale
. - Import by adding
import getUserLocale from 'get-user-locale
. - Do stuff with it!
const userLocale = getUserLocale();
User guide
getUserLocale()
A function that returns a BCP 47 locale tag, based on all available sources.
Sample result
'de-DE'
Usage
import getUserLocale from 'get-user-locale';
or
import { getUserLocale } from 'get-user-locale';
getUserLocales()
A function that returns an array of BCP 47 locale tags, based on all available sources.
Sample result
['de-DE', 'de', 'en-US', 'en']
Usage
import { getUserLocales } from 'get-user-locale';
Technical details
There are at least five ways of determining user's locale:
window.navigator.languages
window.navigator.language
window.navigator.userLanguage
window.navigator.browserLanguage
window.navigator.systemLanguage
...languages
is an array of strings, the others are strings. Some browsers return mixed-case BCP 47 tags (e.g. de-DE
), while others return lowercase ones (e.g. de-de
). Finally, non-browser environments will not return anything, so you need a fallback.
Get-User-Locale does the following:
- Combines all of them into one sane set of locales - in that particular order,
- Dedupes them,
- Fixes invalid, lowercased BCP 47 tags (so that the part after
-
is always uppercased), - Adds a fallback to
en-US
, so if all else fails, you will get a result that won't crash your app.
License
The MIT License.
Author
![]() |
Wojciech Maj kontakt@wojtekmaj.pl http://wojtekmaj.pl |