내 코드 :현지화 nodejs (국제화)
var i18n = require("i18n");
i18n.configure({
locales: ['en', 'ru'],
defaultLocale: 'en',
directory: __dirname + '/locales',
cookiename: 'locale'
});
app.configure(function() {
app.use(i18n.init);
})
app.get('/:locale', function (req, res) {
res.cookie('locale', req.params.locale);
i18n.setLocale(req.params.locale);
res.redirect('/');
});
문제점은 두 가지 :
__ ("이름 키")를 통해 출력을 작동하지 않습니다 템플릿에서
전송이 값을 통해 직접 전달되지 않으면 텍스트를 변경하지 마십시오. 모든 언어 파일이 있습니다.
res.render ('index', {name : res .__ ('name')}));
- 그러나 전환되지 않는 언어
/* ----- */
결과 코드 :
는var i18n = require("i18n");
i18n.configure({
locales: ['en', 'ru'],
defaultLocale: 'ru',
directory: __dirname + '/locales'//,
cookiename: 'locale'
});
app.use(function (req, res, next) {
res.locals.__ = res.__ = function() {
return i18n.__.apply(req, arguments);
};
next();
});
app.get('/i18n/:locale', function (req, res) {
res.cookie('locale', req.params.locale);
i18n.setLocale(req.params.locale);
if (req.headers.referer) res.redirect(req.headers.referer);
else res.redirect("/");
});
이에서
첫 번째 오류가 해결되었습니다. 코드에 오류가 있습니다. – hase
다음과 같이 언어를 전환하지 마십시오. app.get ('/ : locale', function (req, res) { res.cookie 'locale', req.params.locale); i18n.setLocale (req.params.locale); res.redirect ('/'); }); – hase
내 편집을 확인하십시오!몇 가지 샘플 코드를 추가하면 알 수 있습니다. 분명히 이해해 주시겠습니까 – renatoargh