node.js i18n.__ 不是函数
node.js i18n.__ is not a function
我正在尝试在我的测试节点中使用 i18n。js/express4 服务器 api
我安装了 i18n-2,
并更新了我的 server.js
var express = require('express');
var app = express();
var i18n = require('i18n-2');
i18n.expressBind(app, {
// setup some locales - other locales default to en silently
locales: ['en', 'fr'],
// set the default locale
defaultLocale: 'fr',
// set the cookie name
cookieName: 'locale'
});
// set up the middleware
app.use(function(req, res, next) {
req.i18n.setLocaleFromQuery();
req.i18n.setLocaleFromCookie();
next();
});
console.log(i18n.__('Hello'));
我添加了 2 个文件 ./locales/en.js
{
"Hello": "Hello",
}
和./locales/fr.js
{
"Hello": "Salut",
}
但是当我启动服务器时,console.log(i18n.__('Hello'));
出现错误
我做错了什么?
你的i18n
只是一个构造函数,你需要先实例化它。
通过使用 expressBind
,您将在每个 req
.
中获得 i18n
的实例
var express = require('express');
var app = express();
var i18n = require('i18n-2');
i18n.expressBind(app, {
// setup some locales - other locales default to en silently
locales: ['en', 'fr'],
// set the default locale
defaultLocale: 'fr',
// set the cookie name
cookieName: 'locale'
});
// set up the middleware
app.use(function(req, res, next) {
req.i18n.setLocaleFromQuery();
req.i18n.setLocaleFromCookie();
console.log(req.i18n.__("Hello"));
next();
});
app.listen(3000);
如果你想在请求之外使用i18n
,你需要用new
手动创建一个实例。
我正在尝试在我的测试节点中使用 i18n。js/express4 服务器 api
我安装了 i18n-2, 并更新了我的 server.js
var express = require('express');
var app = express();
var i18n = require('i18n-2');
i18n.expressBind(app, {
// setup some locales - other locales default to en silently
locales: ['en', 'fr'],
// set the default locale
defaultLocale: 'fr',
// set the cookie name
cookieName: 'locale'
});
// set up the middleware
app.use(function(req, res, next) {
req.i18n.setLocaleFromQuery();
req.i18n.setLocaleFromCookie();
next();
});
console.log(i18n.__('Hello'));
我添加了 2 个文件 ./locales/en.js
{
"Hello": "Hello",
}
和./locales/fr.js
{
"Hello": "Salut",
}
但是当我启动服务器时,console.log(i18n.__('Hello'));
我做错了什么?
你的i18n
只是一个构造函数,你需要先实例化它。
通过使用 expressBind
,您将在每个 req
.
i18n
的实例
var express = require('express');
var app = express();
var i18n = require('i18n-2');
i18n.expressBind(app, {
// setup some locales - other locales default to en silently
locales: ['en', 'fr'],
// set the default locale
defaultLocale: 'fr',
// set the cookie name
cookieName: 'locale'
});
// set up the middleware
app.use(function(req, res, next) {
req.i18n.setLocaleFromQuery();
req.i18n.setLocaleFromCookie();
console.log(req.i18n.__("Hello"));
next();
});
app.listen(3000);
如果你想在请求之外使用i18n
,你需要用new
手动创建一个实例。