[javascript] Express.js에서의 국제화(i18n) 처리 방법

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의 간결하고 유연한 코드 구조와 함께 국제화 처리를 통해 다국어 지원을 간편하게 구현해보세요.


참고: