Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

get-user-locale

1.4.0 • Public • Published

npm downloads build dependencies dev dependencies tested with jest

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 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

Install

npm i get-user-locale

DownloadsWeekly Downloads

151,522

Version

1.4.0

License

MIT

Unpacked Size

14.3 kB

Total Files

13

Last publish

Collaborators

  • avatar