• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

lxzxl/koa-i18next-middleware: An i18next middleware for Koa2 framework.

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

lxzxl/koa-i18next-middleware

开源软件地址:

https://github.com/lxzxl/koa-i18next-middleware

开源编程语言:

JavaScript 100.0%

开源软件介绍:

koa-i18next-middleware

NPM Version Coverage Status Build Status Downloads Dependency Status License

An i18next middleware for koa2 framework.

Install

npm i -S koa-i18next-middleware

Usage

Notice: this plugin requires koa2 with async enabled in Node.js.

const i18next = require('i18next');
const i18m = require('koa-i18next-middleware');

// add custom detector.
const lngDetector = new i18m.LanguageDetector();
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',
                /*'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);
    }
);

app.use(
    i18m.getHandler(i18next, {
        locals: 'locals',
        ignoreRoutes: ['/no-lng-route']
    })
);

License

MIT © steven MIT © i18next-express-middleware




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap