본문 바로가기
Javascript

[Javascript] 페이지 다국어 처리

by 신입같은 3년차 2020. 2. 6.
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="./test.js"></script>
</head>
<body>

    <button id="koBtn" data-lang="ko">한국</button>
    <button id="enBtn" data-lang="en">영어</button>


    <p id="title" data-detect="title"></p>
    <p id="msg" data-detect="msg"></p>

</body>
</html>

// 다국어 언어 예시.
let multiLanguage = {
  "ko" : {
    msg : "안녕하세요.",
    title: "한국어",
  },

  "en" : {
    msg : "Hello World.",
    title: "English",
  }
};

window.onload = () => {

  let koBtn = document.getElementById("koBtn");
  let enBtn = document.getElementById("enBtn");

  let setLanguage = (lang) => {
    let changeNodeList = Array.prototype.slice.call(document.querySelectorAll('[data-detect]'));
    
    // 각 dataset중 detect인 요소들을 찾아 변경하는 곳. 
    changeNodeList.map( v => {
      v.textContent = multiLanguage[lang][v.dataset.detect]
    })
  };

  koBtn.addEventListener("click" , () => {
    setLanguage(koBtn.dataset.lang);
  });

  enBtn.addEventListener("click" , () => {
    setLanguage(enBtn.dataset.lang);
  });
};
HTML 태그중 속성으로 data-detect를 가지고있는 부분에대해 다국어 처리를 하는 스크립트 소스입니다.
반응형

댓글