[Node] i18n을 활용한 다국어 지원
1. 먼저 필요한 모듈들을 설치한다.
npm install express
npm install cookie-parser
npm install i18n
2. i18n.js 파일을 생성 후 다음과 같이 작성한다.
//모듈 불러오기
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();
};
3. app.js 파일을 i18n.js 파일과 같은 위치에 생성 후 다음과 같이 작성한다.
//모듈 불러오기
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);
4. 서버를 실행시킨다.
node app
5. locales 폴더와 사용할 언어의 json 파일이 생성된다.
6. 각 파일에 사용할 언어를 작성한다.
en.json
{
"Hello": "Hello"
}
ko.json
{
"Hello": "안녕"
}
7. 서버를 재실행 시킨다.
node app
8. 주소창에 http://localhost:4000 을 입력한다.
기본 사용언어인 한국어로 표시되는것을 확인할 수 있다.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>
[참고]
- https://gist.github.com/mashpie/08e5a0ee764f7b6b1355
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=cck223&logNo=220974896622
Author And Source
이 문제에 관하여([Node] i18n을 활용한 다국어 지원), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nhj2927/Node-i18n을-활용한-다국어-지원저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)