Bước 1: Cài thư viện
npm install i18next i18next-http-backend i18next-express-middleware
Bước 2: Tạo file cấu hình i18n.js
const i18next = require('i18next');
const Backend = require('i18next-http-backend');
const middleware = require('i18next-express-middleware');
i18next
.use(Backend)
.use(middleware.LanguageDetector)
.init({
fallbackLng: 'en',
backend: {
loadPath: __dirname + '/locales/{{lng}}/{{ns}}.json',
addPath: __dirname + '/locales/{{lng}}/{{ns}}.missing.json',
},
detection: {
order: ['querystring', 'cookie'],
caches: ['cookie'],
},
});
module.exports = i18next;
Bước 3: Tạo thư mục ngôn ngữ
Trong thư mục website, tạo thư mục tên là locales. Trong thư mục này tạo các thư mục con chứa ngôn ngữ.
Ví dụ: en/translation.json
{
"greeting": "Hello World!"
}
và vi/translation.json
{
"greeting": "Xin chào thế giới!"
}
Bước 4: Tích hợp vào Express
Trong file app.js nhúng file cấu hình vào
const i18next = require('./i18n');
app.use(i18next.middleware.handle(i18next));
Sử dụng bằng cú pháp:
req.t('greeting')
Bước 5: Chạy ứng dụng
http://localhost:3000/?lng=vi
http://localhost:3000/?lng=en
hoặc
http://localhost:3000/