Skip to content

💪 Try as hard as possible to detect the client's language tag ("locale") in node or the browser. Browserify and Webpack friendly!

License

Notifications You must be signed in to change notification settings

moimikey/locale2

Repository files navigation

locale2 Build Status

Version License Downloads Deps DevDeps

Try as hard as possible to detect the client's language tag ("locale") in node or the browser. Browserify and Webpack friendly!

Language Tags, Locale, RFC 5646 and BCP 47

In 2009, IETF published RFC 5646, "Tags for Identifying Languages," in which "...describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object."

A language tag is composed from a sequence of one or more "subtags", each of which refines or narrows the range of language identified by the overall tag. Subtags, in turn, are a sequence of alphanumeric characters (letters and digits), distinguished and separated from other subtags in a tag by a hyphen ("-", [Unicode] U+002D).

en-US

br-PT

fil-PH

  1. RFC 5646
  2. BCP 47

Unit tested and browser tested!

BrowserStack

  • ✓ IE 8
  • ✓ IE 9
  • ✓ IE 10
  • ✓ IE 12 (Edge)
  • ✓ Safari 5.1+
  • ✓ Opera (Presto & Webkit)
  • ✓ Firefox
  • ✓ Chrome

It works in node too!

$ babel-node
> import locale2 from 'locale2'
> locale2
en-US
>

...and pairs well with iso3166-1!

var iso3166 = require('iso3166-1')
var locale2 = require('locale2')
> iso3166.from(locale2).to3()
USA
>

Get it!

npm install --no-optional
npm test

Browser testing (currently private)

npm run test-bs

Try it!

view on requirebin

Guaranteed!

If we can't detect your locale, then we'll give you your money back! it's win-win!

About

💪 Try as hard as possible to detect the client's language tag ("locale") in node or the browser. Browserify and Webpack friendly!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published