-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
55 lines (47 loc) · 1.68 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const express = require ('express');
const path = require ('path');
const next = require ('next');
const dev = process.env.NODE_ENV !== 'production';
const app = next ({dev});
const handle = app.getRequestHandler ();
const i18nextMiddleware = require ('i18next-express-middleware');
const Backend = require ('i18next-node-fs-backend');
const {i18nInstance} = require ('./i18n');
// init i18next with serverside settings
// using i18next-express-middleware
i18nInstance.use (Backend).use (i18nextMiddleware.LanguageDetector).init ({
fallbackLng: 'en',
preload: ['en'], // preload all langages
ns: ['common', 'home', 'about' , 'landing-page', 'login', 'register', 'fuel-wise', 'public-transport', 'addpost', 'editpost', 'showpost', 'registration-succesful', 'sign-in'/* new-i18n-namespace-here */],
backend: {
loadPath: path.join (__dirname, '/static/locales/{{lng}}/{{ns}}.json'),
addPath: path.join (
__dirname,
'/static/locales/{{lng}}/{{ns}}.missing.json'
),
},
debug: false,
}, () => {
// loaded translations we can bootstrap our routes
app.prepare ().then (() => {
const server = express ();
// enable middleware for i18next
server.use (i18nextMiddleware.handle (i18nInstance));
// serve locales for client
server.use (
'/locales',
express.static (path.join (__dirname, '/static/locales'))
);
// missing keys
server.post (
'/locales/add/:lng/:ns',
i18nextMiddleware.missingKeyHandler (i18nInstance)
);
// use next.js
server.get ('*', (req, res) => handle (req, res));
server.listen (3000, err => {
if (err) throw err;
console.log ('> Ready on http://localhost:3000');
});
});
});