如何从路由器中的i18n变量获取值

时间:2019-07-10 13:16:54

标签: node.js internationalization

我正在尝试从i18n-express获得实际的语言值,但它仅在视图内起作用,我需要在途中执行某些操作 我使用的把手具有模板引擎,因此在视图中我使用以下代码获取语言:“ {{lang}}”

我尝试在路由内使用lang变量,但它仅存在于视图中

/********* app.js *************/
app.use(session({
    key: 'wifianywhere',
    secret: 'qsqdqsjhqsdjkdq',
    resave: false,
    store: sessionStore,
    saveUninitialized: true,
    // cookie: { secure: true}  //for https
}));

app.use(i18n({
    translationsPath: path.join(__dirname, 'i18n'), // <--- use here. Specify translations files path.
    siteLangs: ["en","fr", "pt"],
    textsVarName: 'translation',
    browserEnable: true,  //cria cookie mesmo sem iniciar sessao
    defaultLang: 'pt',
    paramLangName: 'clang',
    // textsVarName: 'lang'
    // cookie: 'cookeLang'
}));

/********** routes ********************/
router.get('/faq', async (req, res) => {

    // var cookies = req.headers.cookie

    try {
        const contato = await Contact.findAll()
        const categorias = await Category.findAll({
            include: [{
                model: Faqs
            }]
        })

        // console.log(categorias[0].id)


        return res.render('home/faq', {
            User: req.user, 
            Faq: categorias,
            Contato: contato
        })
    }catch(err){
        throw new Error('Erro ao retornar dados de faq e categorias')
    }
})


/***** views  ************/
<p>{{lang}}</p>

我希望获得在路线内部查询中使用的lang值

0 个答案:

没有答案