Express.js는 Node.js를 위한 강력하고 유연한 웹 프레임워크로, 다국어 지원을 위한 국제화(i18n) 처리를 쉽게 구현할 수 있습니다. 이 글에서는 Express.js에서의 국제화 처리 방법에 대해 알아보겠습니다.
Express.js의 i18n 미들웨어 설치
Express.js에서 국제화 처리를 위해 i18n 미들웨어를 사용할 수 있습니다. i18n 미들웨어는 다국어 지원을 위한 텍스트 번역 처리와 로캘 관리를 도와줍니다. 다음 명령어를 사용하여 i18n 라이브러리를 설치합니다.
npm install i18n --save
i18n 설정
Express.js에서 i18n 미들웨어를 사용하기 위해서는 초기 설정이 필요합니다. i18n 설정은 다음과 같이 진행할 수 있습니다.
const express = require('express');
const i18n = require('i18n');
const app = express();
app.use(i18n.init);
i18n.configure({
locales: ['en', 'ko'], // 지원되는 로캘 리스트
defaultLocale: 'en', // 기본 로캘
directory: __dirname + '/locales', // 번역 파일이 위치한 디렉토리
objectNotation: true, // 번역된 텍스트를 변수를 이용해 사용할 수 있도록 함
});
app.use((req, res, next) => {
req.i18n = i18n;
next();
});
위 코드에서는 Express.js 앱에 i18n
미들웨어를 사용하기 위해 app.use(i18n.init)
을 추가하였습니다. 또한, i18n.configure()
를 사용하여 로캘 리스트, 기본 로캘, 번역 파일 디렉토리 등을 설정하였습니다.
번역 파일 작성 및 로드
i18n 미들웨어를 사용하려면 번역 파일을 작성해야 합니다. 번역 파일은 JSON 형식으로 작성되며, 각 로캘별로 파일을 생성하여 저장합니다. 예를 들어, en.json
, ko.json
과 같이 파일을 생성하고 번역할 텍스트와 해당 로캘의 번역을 작성합니다.
예시로, en.json
파일에는 다음과 같이 작성할 수 있습니다.
{
"welcome": "Welcome to our website!",
"hello": "Hello, !"
}
번역 파일을 작성한 후, Express.js 앱에서 해당 파일을 로드합니다. 이는 i18n.configure()
에서 directory
옵션으로 설정한 디렉토리 내의 번역 파일들을 자동으로 로드하게 됩니다.
국제화 처리
Express.js에서 국제화 처리는 i18n 미들웨어를 사용하여 간단하게 구현할 수 있습니다. 다음은 국제화 처리 예시입니다.
app.get('/hello', (req, res) => {
const name = req.query.name;
const message = req.i18n.__('hello', { name });
res.send(message);
});
위 코드에서는 /hello
경로로 들어온 요청에 대해 hello
키의 번역 텍스트를 가져와서 응답으로 보내줍니다. req.i18n.__()
메소드를 사용하여 번역된 텍스트를 가져오며, name
이라는 변수를 사용하여 동적인 텍스트를 생성할 수 있습니다.
이와 같은 방식으로 Express.js에서 국제화 처리를 구현할 수 있습니다.
결론
Express.js에서의 국제화(i18n) 처리는 i18n 미들웨어를 사용하여 간편하게 구현할 수 있습니다. i18n 설정을 위한 초기 설정과 번역 파일 작성, 그리고 국제화 처리를 함께 사용하여 다양한 언어로 웹 애플리케이션을 제공할 수 있습니다. Express.js의 간결하고 유연한 코드 구조와 함께 국제화 처리를 통해 다국어 지원을 간편하게 구현해보세요.
참고: