2013-06-21 5 views
4

Im using ExpressJS и i18next.Доступ к i18next Перевод в функции не в App.js

в app.js

var express = require('express') 
    , i18n = require('i18next') 
    , user = require('./routes/user') 
... 
//internationalization 
i18n.init({ 
    lng: 'en-US', 
    saveMissing: true, 
    debug: true 
}); 
... 
app.use(i18n.handle); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
... 
i18n.registerAppHelper(app); 
... 
app.post('/users/save', user.save); 

я могу получить доступ к переводу в нефрите:

t('app.title') 

Как я могу получить доступ к переводу в routes.user.js

exports.save = function(req, res){ 
    //t('app.title') 
} 

ответ

2

t доступен в обработчиках маршрутов как res.locals.t. Это должно работать и в Express 3 и 2.

0

i18next-express-middleware -> Доступ к функции перевода можно получить через req.i18n.t или просто req.t. но, очевидно, он тоже находится под res.locals.t - чтобы быть доступным в шаблонах.