browser-locale

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)
installation
npm install browser-locale
use browserify or browserify-cdn to package it for browser use
usage
var locale = require('browser-locale')()
tips
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.