Skip to content

Intl Fingerprinting

Intl fingerprinting reads internationalization settings from the Intl API. These values reflect OS-level locale configuration.

Collected signals

SignalExample
dateTimeFormat.localepl or pl-PL
dateTimeFormat.timeZoneEurope/Warsaw
dateTimeFormat.calendargregory
dateTimeFormat.numberingSystemlatn
numberFormat.localepl
numberFormat.numberingSystemlatn
listFormattrue (API exists)
relativeTimeFormattrue
pluralRulesother (for 0)
displayNamestrue
segmentertrue

Cross-browser normalization

Locale format differs between browsers: Chrome reports pl, Safari reports pl-PL. For crossBrowserId, the locale is normalized to the base language tag (pl).

Entropy and stability

PropertyValue
Entropy~5 bits
Stability0.85
Typical duration<1ms

Web Worker offloading

Intl collector runs in a Web Worker by default. The Intl API is available in Worker contexts.

Usage

ts
const fp = await neoprint.get({ collectors: ['intl'] })
const intl = fp.components.intl.value

console.log(intl.dateTimeFormat.timeZone)  // "Europe/Warsaw"
console.log(intl.dateTimeFormat.locale)    // "pl"

Released under the MIT License.