@omegion1npm/illum-fuga-recusandae
v1.0.0
Published
[![npm](https://img.shields.io/npm/v/@omegion1npm/illum-fuga-recusandae.svg)](https://www.npmjs.com/package/@omegion1npm/illum-fuga-recusandae) ![downloads](https://img.shields.io/npm/dt/@omegion1npm/illum-fuga-recusandae.svg) [![CI](https://github.com/om
Downloads
3
Maintainers
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 @omegion1npm/illum-fuga-recusandae
oryarn add @omegion1npm/illum-fuga-recusandae
. - Import by adding
import getUserLocale from '@omegion1npm/illum-fuga-recusandae'
. - 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 usage
import getUserLocale from '@omegion1npm/illum-fuga-recusandae';
getUserLocale(); // 'de-DE'
or
import { getUserLocale } from '@omegion1npm/illum-fuga-recusandae';
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
|
getUserLocales()
A function that returns an array of user's preferred locales as an IETF language tags, based on all available sources.
Sample usage
import { getUserLocales } from '@omegion1npm/illum-fuga-recusandae';
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
|
Technical details
There are a few ways of determining user's locale:
window.navigator.languages
window.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), - 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.