regionist
TypeScript icon, indicating that this package has built-in type declarations

5.0.0 • Public • Published

regionist

Guesses the user's regional parameters on-device, in a reliable way.

This library relies on the window object of the user's browser. It guesses timezone, country, native and preferred languages of the user and also stores currency code and calling code related to its guess. As there is no %100 accurate way of detecting user's regional parameters, this library tries its chance by combinating the outputs of window.Intl and window.navigator objects.

Install

npm i regionist

or inject with script tag:

<script type="module" src="https://cdn.jsdelivr.net/npm/regionist@5/dist/index.js"></script>

Usage

The guess result is available as you import it.

import { regionist } from 'regionist'
// or const { regionist } = require('regionist') for cjs

// guess result:
regionist.toObject() === {
    timezone: string | undefined,
    country: string | undefined,
    locale: RegionistLocale | undefined,
    preferredLocale: RegionistLocale | undefined,
    callingCode: number | undefined,
    currencyCode: string | undefined
}

Remember Guesses

The library uses device's local storage to remember previous results:

// have to call .remember() to enable storing
regionist.remember()

// compare current and previous results:
regionist.hasCountryBeenChanged()
regionist.hasTimezoneBeenChanged()

Find The Closest Locale To The User From Given List Of Locales

// assuming user's locale detected as tr_TR
regionist.findClosestLocale(['en-us', 'tr-tr']) === 'tr-tr'
regionist.findClosestLocale(['en_US', 'tr_TR']) === 'tr_TR'

Helpers

regionist.formatLocaleText('en-us', 'iso') === 'en_US'
regionist.formatLocaleText('en_US', 'url') === 'en-us'

Contributing

If you're interested in contributing, read the CONTRIBUTING.md first, please.


Version management of this repository done by releaser 🚀


Thanks for watching 🐬

Support me on Patreon

Package Sidebar

Install

npm i regionist

Weekly Downloads

20

Version

5.0.0

License

MIT

Unpacked Size

40.6 kB

Total Files

15

Last publish

Collaborators

  • muratgozel