Namibian Pyjama Merchant
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    koa-i18next-detectorpublic

    koa-i18next-detector

    NPM Version Coverage Status Build Status Downloads Dependency Status License

    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";
     
    // add custom detector.
    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(koaI18nextDetector).init({
        fallbackLng: 'en',
        preload: ['en', 'es'],
        resources: {
            en: {
                translation: {
                    "key": "hello world"
                }
            },
            es: {
                translation: {
                    "key": "es hello world es"
                }
            }
        },
        detection: {
            order: ['querystring', 'path', /*'cookie', 'header',*/ 'session', 'mySessionDetector'],
     
            lookupQuerystring: 'lng',
     
            lookupParam: 'lng', // for route like: 'path1/:lng/result'
            lookupFromPathIndex: 0,
     
            // currently using ctx.cookies
            lookupCookie: 'i18next',
            // cookieExpirationDate: new Date(), // default: +1 year
            // cookieDomain: '', // default: current domain.
     
            // currently using ctx.session
            lookupSession: 'lng',
     
            // other options
            lookupMySession: 'lang',
     
            // cache user language
            caches: ['cookie', 'mySessionDetector']
        }
    }, (err, t) => {
        // initialized and ready to go!
        const hw = i18next.t('key'); // hw = 'hello world'
        console.log(hw);
    });
     

    License

    MIT © lxzxl

    install

    npm i koa-i18next-detector

    Downloadsweekly downloads

    140

    version

    0.7.1

    license

    MIT

    repository

    githubgithub

    last publish

    collaborators

    • avatar