ui-lang-detector
Express.js middleware to detect UI language to be used to serve content.
As soon as you support a website that serves multilingual UI, you want to send the user your content in the language the user prefer. If this is a first-time visitor, you may want to try to guess the most appropriate language from the Accept-Language
header. Later on, you will have a chance to ask the user what language they prefer and store this information with the user account data, or send a special cookie to the user agent.
This middleware extends the Request object with req.uilang
property following these steps:
-
First, check if the special cookie has come with the request. If so, ok - use it.
-
If no cookie detected, analyze the Accept-Language
header and choose the most preferable language.
-
If nothing helps, use the provided default value.
All language codes are lowercased (e.g., en
, en-us
etc).
Installation
$ npm install ui-lang-detector --save
Usage example
const app = require('express')();
const uiLangDetector = require('ui-lang-detector');
const options = {
cookieName: 'lang',
defaultLang: 'en'
};
app.use(uiLangDetector(options));
app.get('/some_path', function (req, res) {
const uiLanguage = req.uilang;
});
API
Configuration options
Type: Object
options.cookieName
Type: String
Optional. The cookie name being used to store UI language. If omitted, cookies are not processed.
options.defaultLang
Type: String
Default language code to use.