[javascript] Webpack으로 다국어 지원하기

소개

웹 개발에서 언어 다국어 지원은 중요한 요소 중 하나입니다. 사용자가 언어 설정에 따라 웹 페이지의 텍스트가 자동으로 변경되도록 만들기 위해서는 다국어 지원 기능이 필요합니다. 이번에는 Webpack을 사용하여 다국어 지원 기능을 구현하는 방법에 대해 알아보겠습니다.

다국어 파일 준비하기

먼저, 웹 페이지에 표시될 다국어 텍스트를 저장하는 파일을 준비해야 합니다. 보통 JSON파일을 사용하여 텍스트를 관리합니다. 이 예제에서는 간단한 예제를 위해 lang.json이라는 파일을 사용하겠습니다. 해당 파일은 다음과 같은 구조로 작성됩니다.

{
  "en": {
    "greeting": "Hello!",
    "message": "Welcome to our website."
  },
  "ko": {
    "greeting": "안녕하세요!",
    "message": "우리 웹사이트에 오신 것을 환영합니다."
  }
}

Webpack 설정하기

Webpack은 다양한 기능을 제공하는데, 이 중에서도 i18next-loader라는 로더를 사용하여 다국어 텍스트를 처리할 수 있습니다. 다음은 Webpack의 설정 파일(webpack.config.js)에 해당 로더를 추가하는 예제입니다.

module.exports = {
  //...
  module: {
    rules: [
      //...
      {
        test: /\.(json)$/i,
        use: [
          {
            loader: 'i18next-loader',
            options: {
              amd: false,
              ns: ['translations'],
              defaultNS: 'translations',
              fallbackLng: 'en',
              saveMissing: true,
              interpolation: {
                escapeValue: false,
              },
            },
          },
          {
            loader: 'json-loader',
            options: {
              esModule: true,
            },
          },
        ],
      },
      //...
    ],
  },
  //...
}

위의 설정은 JSON 형식 파일을 읽어들여 다국어 텍스트를 처리하도록 설정한 것입니다.

다국어 텍스트 사용하기

Webpack으로 다국어 파일을 로드한 뒤, 해당 텍스트를 사용하는 방법은 간단합니다. JavaScript 파일에서 import문을 사용하여 다국어 텍스트를 가져올 수 있습니다. 예를 들어, 위에서 작성한 lang.json 파일을 사용하여 다국어 텍스트를 가져오는 예제는 다음과 같습니다.

import translations from './lang.json';

console.log(translations.en.greeting); // "Hello!"
console.log(translations.ko.greeting); // "안녕하세요!"

위의 코드에서 translations 객체는 다국어 텍스트를 가지고 있습니다. en 또는 ko와 같은 키를 사용하여 해당 언어의 텍스트에 접근할 수 있습니다.

결론

이렇게 Webpack을 사용하여 다국어 지원 기능을 구현할 수 있습니다. Webpack의 다양한 로더와 기능을 활용하여 다국어 텍스트 관리를 효율적으로 할 수 있습니다. 다국어 지원은 사용자 경험을 향상시키는 중요한 요소이므로, 웹 개발에서 유용하게 활용해보시기 바랍니다.

참고 자료