koa-i18next-detector
A i18next language detecting plugin for Koa 2.0 framework.
Install
npm i -S koa-i18next-detector
Usage
const i18next = require('i18next');
import koaI18nextDetector from 'koa-i18next-detector';
const lngDetector = new koaI18nextDetector();
lngDetector.addDetector({
name: 'mySessionDetector',
lookup(ctx, options) {
let found;
if (options.lookupSession && ctx && ctx.sessions) {
found = ctx.sessions[options.lookupMySession];
}
return found;
},
cacheUserLanguage(ctx, lng, options = {}) {
if (options.lookupMySession && ctx && ctx.session) {
ctx.session[options.lookupMySession] = lng;
}
}
});
i18next.use(lngDetector).init(
{
fallbackLng: 'en',
preload: ['en', 'es'],
resources: {
en: {
translation: {
key: 'hello world'
}
},
es: {
translation: {
key: 'es hello world es'
}
}
},
detection: {
order: [
'querystring',
'path',
'session',
'mySessionDetector'
],
lookupQuerystring: 'lng',
lookupParam: 'lng',
lookupFromPathIndex: 0,
lookupCookie: 'i18next',
lookupSession: 'lng',
lookupMySession: 'lang',
caches: ['cookie', 'mySessionDetector']
}
},
(err, t) => {
const hw = i18next.t('key');
console.log(hw);
}
);
License
MIT © lxzxl