Get Browser Locale

A helpful utility function to get browser locale.

get-locale.ts

export function getBrowserLocale(): string {
  if (typeof window === "undefined") {
    return "en-US";
  }

  const nav = window.navigator;
  let locale: string = "en-US";

  if (nav.languages?.length) {
    // Chrome, Firefox
    locale = nav.languages[0];
  } else if (nav.language) {
    // IE, Safari
    locale = nav.language;
  }

  return locale;
}

Usage

One good use case is displaying number in locale format.

<span>
  {Intl.NumberFormat(getBrowserLocale(), {
    notation: "compact",
    maximumFractionDigits: 1,
  })
  .format(100000)
  .toString()}
</span>

This displays 100k for locale en-US and 1L for locale en-IN


Loved this post?

Comments

Interested in
working
with me?