Returns a list of strings representing the user's preferred languages.
npm install get-user-locale !downloads 
A function that returns user's locale as an IETF language tag, based on all available sources.
- Install by executing npm install get-user-locale or yarn add get-user-locale.
- Import by adding import getUserLocale from 'get-user-locale'.
- Do stuff with it!
``ts`
const userLocale = getUserLocale();
A function that returns user's preferred locale as an IETF language tag, based on all available sources.
#### Sample usage
`ts
import getUserLocale from 'get-user-locale';
getUserLocale(); // 'de-DE'
`
or
`ts
import { getUserLocale } from 'get-user-locale';
getUserLocale(); // 'de-DE'
`
##### Options
getUserLocale() may be called with an optional options argument.
options object may contain the following properties:
| Property | Description | Default value |
| ------------------- | ----------------------------------- | ------------- |
| fallbackLocale | A locale to use as a fallback. | en-US |useFallbackLocale
| | Whether to use the fallback locale. | true |
A function that returns an array of user's preferred locales as an IETF language tags, based on all available sources.
#### Sample usage
`ts
import { getUserLocales } from 'get-user-locale';
getUserLocales(); // ['de-DE', 'de', 'en-US', 'en']
`
##### Options
getUserLocales() may be called with an optional options argument.
options object may contain the following properties:
| Property | Description | Default value |
| ------------------- | ----------------------------------- | ------------- |
| fallbackLocale | A locale to use as a fallback. | en-US |useFallbackLocale
| | Whether to use the fallback locale. | true |
There are a few ways of determining user's locale:
- window.navigator.languageswindow.navigator.language
-
…languages is an array of strings, …language is a string. 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),en-US`, so if all else fails, you will get a result that won't crash your app.
- Adds a fallback to
The MIT License.
Wojciech Maj |