node package manager




normalizes weird cross browser issues and tries to return the users selected language in 100% client side JS by looking at various properties on the window.navigator object

note that another technique used to detect the browsers user-set language preference is to look at the accept-language header set on outgoing http requests, but this requires making a round trip XHR to a server, which is what jquery-browser-language does.

however, it seems that as of 2014 you can get the user specified language without making a HTTP request (see index.js for details)


npm install browser-locale

use browserify or browserify-cdn to package it for browser use


var locale = require('browser-locale')()
// locale will be e.g. en-US or undefined if it could not be detected (e.g. you are in a super weird browser) 


Not all browsers are consistent in their capitalization of language tags, e.g. en-US vs en-us. Keep this in mind when looking for matches in locale strings.

See also locale2, an alternative module for detecting a user's locale.