Node's Perfect Mate

    get-user-locale
    TypeScript icon, indicating that this package has built-in type declarations

    2.1.3 • Public • Published

    npm downloads CI 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';
    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 result

    ['de-DE', 'de', 'en-US', 'en'];

    Usage

    import { getUserLocales } from 'get-user-locale';
    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.

    Author

    Wojciech Maj
    kontakt@wojtekmaj.pl
    https://wojtekmaj.pl

    Install

    npm i get-user-locale

    DownloadsWeekly Downloads

    473,119

    Version

    2.1.3

    License

    MIT

    Unpacked Size

    19.2 kB

    Total Files

    10

    Last publish

    Collaborators

    • wojtekmaj