# browser-lang

> Detect user's most preferred language within the given language list.

Latest version **0.2.1** (published 2022-10-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install browser-lang
pnpm add browser-lang
yarn add browser-lang
bun add browser-lang
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.1 |
| Published | 2022-10-27 |
| First published | 2018-07-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/browser-lang) |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 5.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | Daewoong Moon |
| Maintainers | wiziple |
| Keywords | browser language, language detect, accepted language, default language, i18n |

## Links

- npm: https://www.npmjs.com/package/browser-lang
- Repository: https://github.com/wiziple/browser-lang
- Issues: https://github.com/wiziple/browser-lang/issues
- npm.io page: https://npm.io/package/browser-lang

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 0.2.1 (latest) — 2022-10-27
- 0.1.0-beta.0 (beta) — 2019-06-07
- 0.2.0 — 2022-10-16
- 0.1.0 — 2019-06-07
- 0.0.1 — 2018-07-05

## README

# browser-lang

Detect user's most preferred language within the given language list.

## Why?

 - To determine an `initial display language` or `default language router` on your application with fallback options.

## Inspiration

 - I made `en` and `ko` router to support i18n. How do I detect user's preferred language in browser?
 - My app only supports `en` and `ko` for now. What language should I display when `zh` users visit us?
 - I added `fr` router. But, how do I handle `fr_FR` and `fr_CA` users as well?

## Installation

```bash
npm install browser-lang --save
```
or
```bash
yarn add browser-lang
```

## Options

* **languages:**
language code list that is available on your application.

* **fallback:**
default language when user's preferred language is not on the list.

## Example

in javascript project

```js
// const browserLang = require('browser-lang');
import browserLang from 'browser-lang';

const myLanguage = browserLang();
// return the preferred language in browser: e.g. "ko-KR" or "ko".

const myLanguage = browserLang({
  languages: ['ko', 'de', 'zh', 'zh_TW', 'en'], 
  fallback: 'en',
});

// return "ko" if the preferred language in browser is set to "ko-KR" or "ko".
// return "en" as a fallback if the preferred language in browser is "fr".
// return 'zh' if the preferred language in browser is set to "zh_HK".
```

## Browser support

- Chrome
- Firefox
- Safari
- IE
- Edge
- Opera

## License

MIT &copy; [Daewoong Moon](https://github.com/wiziple)

---
_Source: https://npm.io/package/browser-lang · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
