npm install express
npm install cookie-parser
npm install i18n
//모듈 불러오기
const i18n = require('i18n');
//옵션 설정
i18n.configure({
//사용언어 설정
locales: ['ko', 'en'],
//언어를 설정한 json 파일 생성위치 - 기본은 ./locales
directory: __dirname + '/locales',
//기본 사용언어 설정
defaultLocale: 'ko',
//사용언어를 저장할 cookie 이름
cookie: 'lang'
});
module.exports = (req, res, next) => {
i18n.init(req, res);
return next();
};
//모듈 불러오기
const express = require('express');
const cookieParser = require('cookie-parser');
const i18n = require('./i18n');
const app = express();
//cookie 사용
app.use(cookieParser());
//i18n 초기화
app.use(i18n);
//라우팅 설정
app.get('/', (req, res) => {
res.send(res.__('Hello'));
});
app.get('/en', (req, res) => {
res.cookie('lang', 'en');
res.redirect('back');
});
app.get('/ko', (req, res) => {
res.cookie('lang', 'ko');
res.redirect('back');
});
//서버 실행
app.listen(4000);
node app
en.json
{
"Hello": "Hello"
}
ko.json
{
"Hello": "안녕"
}
node app
http://localhost:4000/en 과 http://localhost:4000/ko 로 접속하면 각 언어에 맞게 출력되는것을 확인할 수 있다.
ejs파일에서 사용하기 위해서는 다음과 같이 작성한다.
i18n.js
module.exports = (req, res, next) => {
i18n.init(req, res);
res.locals.__ = res.__; //추가
return next();
};
i18nExample.ejs
<!DOCTYPE html>
<html>
<head>
<title>i18nExample</title>
</head>
<body>
<div><%= __('Hello')%></div>
</body>
</html>
안녕하세요. 좋은 글 잘 봤습니다 ㅎㅎ
다국어 사용할 때 좋은 모듈을 알았네요. 혹시 이미지 같은 경우는 어떻게 해야 할까요?