Add locales middleware
This commit is contained in:
parent
34b95fe822
commit
1f1f44bce3
3 changed files with 76 additions and 2 deletions
9
app.js
9
app.js
|
@ -3,6 +3,7 @@ let path = require("path");
|
|||
let cookieParser = require("cookie-parser");
|
||||
let session = require("express-session");
|
||||
let logger = require("morgan");
|
||||
let { I18n } = require("i18n");
|
||||
|
||||
let indexRouter = require("./routes/index");
|
||||
let registerRouter = require("./routes/register");
|
||||
|
@ -20,6 +21,13 @@ let sess = {
|
|||
secret: process.env.NODE_ENV === "test" ? "Keyboard Cat" : require("./config/config.json").secret,
|
||||
cookie: {}
|
||||
};
|
||||
let i18n = new I18n({
|
||||
locales: ["fr", "en"],
|
||||
defaultLocale: "fr",
|
||||
cookie: "locale",
|
||||
directory: __dirname + "/locales",
|
||||
objectNotation: true
|
||||
});
|
||||
|
||||
if (app.get("env") === "production") {
|
||||
app.set("trust proxy", 1);
|
||||
|
@ -36,6 +44,7 @@ app.use(express.urlencoded({ extended: false }));
|
|||
app.use(cookieParser());
|
||||
app.use(session(sess));
|
||||
app.use(express.static(path.join(__dirname, "public")));
|
||||
app.use(i18n.init);
|
||||
|
||||
app.use("/", indexRouter);
|
||||
app.use("/register", registerRouter);
|
||||
|
|
68
package-lock.json
generated
68
package-lock.json
generated
|
@ -1279,6 +1279,26 @@
|
|||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"i18n": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/i18n/-/i18n-0.12.0.tgz",
|
||||
"integrity": "sha512-PAxVHNs/hCB/RXNWvImbmUxkKsaUfFLxA6TJiDPVHvzPRueJEVDTGnWeSuxQylhGGmYhFWEj/mGeumaQenUfsg==",
|
||||
"requires": {
|
||||
"debug": "*",
|
||||
"make-plural": "^6.2.1",
|
||||
"math-interval-parser": "^2.0.1",
|
||||
"messageformat": "^2.3.0",
|
||||
"mustache": "^4.0.1",
|
||||
"sprintf-js": "^1.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"sprintf-js": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
|
||||
"integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.23",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
||||
|
@ -1630,6 +1650,16 @@
|
|||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-plural": {
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/make-plural/-/make-plural-6.2.2.tgz",
|
||||
"integrity": "sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA=="
|
||||
},
|
||||
"math-interval-parser": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz",
|
||||
"integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA=="
|
||||
},
|
||||
"media-typer": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||
|
@ -1655,6 +1685,36 @@
|
|||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
||||
},
|
||||
"messageformat": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/messageformat/-/messageformat-2.3.0.tgz",
|
||||
"integrity": "sha512-uTzvsv0lTeQxYI2y1NPa1lItL5VRI8Gb93Y2K2ue5gBPyrbJxfDi/EYWxh2PKv5yO42AJeeqblS9MJSh/IEk4w==",
|
||||
"requires": {
|
||||
"make-plural": "^4.3.0",
|
||||
"messageformat-formatters": "^2.0.1",
|
||||
"messageformat-parser": "^4.1.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"make-plural": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-plural/-/make-plural-4.3.0.tgz",
|
||||
"integrity": "sha512-xTYd4JVHpSCW+aqDof6w/MebaMVNTVYBZhbB/vi513xXdiPT92JMVCo0Jq8W2UZnzYRFeVbQiQ+I25l13JuKvA==",
|
||||
"requires": {
|
||||
"minimist": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"messageformat-formatters": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz",
|
||||
"integrity": "sha512-E/lQRXhtHwGuiQjI7qxkLp8AHbMD5r2217XNe/SREbBlSawe0lOqsFb7rflZJmlQFSULNLIqlcjjsCPlB3m3Mg=="
|
||||
},
|
||||
"messageformat-parser": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/messageformat-parser/-/messageformat-parser-4.1.3.tgz",
|
||||
"integrity": "sha512-2fU3XDCanRqeOCkn7R5zW5VQHWf+T3hH65SzuqRvjatBK7r4uyFa5mEX+k6F9Bd04LVM5G4/BHBTUJsOdW7uyg=="
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
|
@ -1689,8 +1749,7 @@
|
|||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.9.0",
|
||||
|
@ -1903,6 +1962,11 @@
|
|||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"mustache": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz",
|
||||
"integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA=="
|
||||
},
|
||||
"needle": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz",
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
"express": "~4.16.1",
|
||||
"express-session": "^1.17.1",
|
||||
"http-errors": "~1.6.3",
|
||||
"i18n": "^0.12.0",
|
||||
"morgan": "~1.9.1",
|
||||
"pg": "^8.3.0",
|
||||
"pg-hstore": "^2.3.3",
|
||||
|
|
Reference in a new issue