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 user's locale as an IETF language 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 user's preferred locale as an IETF language 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 user's preferred locales as an IETF language 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 IETF language 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 IETF language 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 |