2.3.2 • Published 1 year ago

get-user-locale v2.3.2

Weekly downloads
181,669
License
MIT
Repository
github
Last release
1 year ago

npm downloads CI

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 or yarn 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 usage

import getUserLocale from 'get-user-locale';

getUserLocale(); // 'de-DE'

or

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:

PropertyDescriptionDefault value
fallbackLocaleA locale to use as a fallback.en-US
useFallbackLocaleWhether 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 '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:

PropertyDescriptionDefault value
fallbackLocaleA locale to use as a fallback.en-US
useFallbackLocaleWhether 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.

Author

@mirfanrafif/react-calendarreact-calendar-youwereact-calendar-youwee@infinitebrahmanuniverse/nolb-get-u@everything-registry/sub-chunk-1753@theinternetfolks/trackr@cugede/react-time@dagenius007/react-calendariui-react-calendar@dropthebeatbro/react-datetime-pickersomoffice-shell@arcataroger/react-clock-milliseconds@ahaui/react3@babogdanov/react-calendar@beatchainmusic/core@beatchainmusic/ui@chaitanyapotti/react-intl-number-format@3dweb/360javascriptviewerzion-calendar@ihogers_nxdx/react-datetime-picker@fuzio/web3auth@levo-so/audience@levo-so/core@irunner/react-date-picker@njsn/ui@navwire/react-calendar@engin33r/react-date-picker@eo-locale/detect-user-language@encodeas/custom-time-picker@fall-out/react-calendar@kavytska/react-calendar@jozekcore/react-calendar@jdmswong/react-calendar@jupiterapp/react-calendar@jupiterdev/react-calendar@qingleili/react-calendar@reactguru/calendar@reverb-ui/react@reverb-ui/teste@open-election-compass/client@osdiab/react-date-pickernuxt-gettextreact-clockreact-clock-correct-localreact-clock-correct-localernb-react-date-pickerreact-calendarreact-calendar-blissreact-calendar-doublereact-calendar-customize-navigation2react-date-pickerreact-datetime-pickerreact-datetime-picker-correct-localersvbee-react-datetime-pickerreact-calender-for-jafeelreact-99h-time-pickerreact-calendar-servereact-date-picker-gleapreact-date-picker-servereact-date-picker-correct-localereact-date-picker-portalreact-monthly-calendar-fork-default-iso-week-numberreact-intl-datetime-formatreact-intl-number-formatreact-insti-calendarnode-red-contrib-zenitel-opcuanode-red-contrib-opcua-testnode-red-contrib-opcuanode-red-contrib-opcua-swmsnova-react-calendarred-contrib-opcua-yuzhireseller-react-calendarreseller-react-date-pickerreact-today-date-pickersixbee-material-uireact-styled-calendarshort-react-calendarreact-time-pickerreact-time-picker-nyareact-time-picker2react-time-picker3gomarketme-react-nativeiclips-reverb-ui-reactguidesly-react-time-pickerhodlingsmaterial-table-shared@wojtekmaj/react-t@tt92618/custom-react-calendar@vmartynets/react-time-picker@velo-dao/velo-web3auth@xola/ui-kitaeyos-react-date-pickerastro-parent-componentsastro-parent-portal-testastrosafe-parent-portal-componentscalendar-react-widgetcat_ebm_atomscustom-react-calendardave-rennes-react-time-pickerbeatchain-artists-react
2.3.2

1 year ago

2.3.1

2 years ago

2.3.0

2 years ago

2.2.1

2 years ago

2.2.0

2 years ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.3

2 years ago

2.1.0

2 years ago

2.0.0

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.0

5 years ago

1.3.0

6 years ago

1.2.0

6 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago