
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
i18next-express-middleware
Advanced tools
This is a middleware to use i18next in express.js.
Source can be loaded via npm.
# npm package
$ npm install i18next-express-middleware
var i18next = require('i18next');
var middleware = require('i18next-express-middleware');
var express = require('express');
i18next.init(i18nextOptions);
var app = express();
app.use(middleware.handle(i18next));
// in your request handler
app.get('myRoute', function(req, res) {
var lng = req.language; // 'de-CH'
var lngs = req.languages; // ['de-CH', 'de', 'en']
req.i18n.changeLanguage('en'); // will not load that!!! assert it was preloaded
var exists = req.i18n.exists('myKey');
var translation = req.t('myKey');
});
// in your views, eg. in jade
div=t('myKey')
// missing keys
app.post('/locales/add/:lng/:ns', middleware.missingKeyHandler(i18next));
// multiload backend route
app.get('/locales/resources.json', middleware.getResourcesHandler(i18next));
Detects user language from current request. Comes with support for:
Wiring up:
var i18next = require('i18next');
var middleware = require('i18next-express-middleware');
i18next
.use(middleware.LanguageDetector)
.init(i18nextOptions);
As with all modules you can either pass the constructor function (class) to the i18next.use or a concrete instance.
{
// order and from where user language should be detected
order: [/*'path', 'session', */ 'querystring', 'cookie', 'header'],
// keys or params to lookup language from
lookupQuerystring: 'lng',
lookupCookie: 'i18next',
lookupSession: 'lng',
lookupFromPathIndex: 0,
// cache user language
caches: false, // ['cookie']
// optional expire and domain for set cookie
cookieExpirationDate: new Date(),
cookieDomain: 'myDomain'
}
Options can be passed in:
preferred - by setting options.detection in i18next.init:
var i18next = require('i18next');
var middleware = require('i18next-express-middleware');
i18next
.use(middleware.LanguageDetector)
.init({
detection: options
});
on construction:
var middleware = require('i18next-express-middleware');
var lngDetector = new middleware.LanguageDetector(null, options);
via calling init:
var middleware = require('i18next-express-middleware');
var lngDetector = new middleware.LanguageDetector();
lngDetector.init(options);
module.exports {
name: 'myDetectorsName',
lookup: function(req, res, options) {
// options -> are passed in options
return 'en';
},
cacheUserLanguage: function(req, res, lng, options) {
// options -> are passed in options
// lng -> current language, will be called after init and on changeLanguage
// store it
}
};
var i18next = require('i18next');
var middleware = require('i18next-express-middleware');
var lngDetector = new middleware.LanguageDetector();
lngDetector.addDetector(myDetector);
i18next
.use(lngDetector)
.init({
detection: options
});
FAQs
express middleware for i18next
The npm package i18next-express-middleware receives a total of 11,292 weekly downloads. As such, i18next-express-middleware popularity was classified as popular.
We found that i18next-express-middleware demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.