Just in Chronicles

Life as a Voyage

Replacing Menu in Korean with English for TextCube – 텍스트큐브에서 한글메뉴 영문으로 바꾸기

Even though menu titles written in Korean within the skin file, AKA theme in WordPress, TextCube still provides hard-coded Korean menu titles at some sections such as comments, trackbacks, and so on. They cannot be modified by end-users. In order to replace those menus, Javascript is the only option.

   1: <!-- for language conversion from Korean to English -->

   2: <script type="text/javascript" language="javascript">

   3:     var h3s = null;

   4:     var spans = null;

   5:     var labels = null;

   6:     h3s = document.getElementsByTagName("h3");

   7:     for (i = 0; i < h3s.length; i++)

   8:     {

   9:         if (h3s[i].innerHTML == "연관글")

  10:             h3s[i].innerHTML = "What others think is ...";

  11:     }

  12:     spans = document.getElementById("replyList").getElementsByTagName("span");

  13:     for (i = 0; i < spans.length; i++)

  14:     {

  15:         if (spans[i].innerHTML == "답글")

  16:             spans[i].innerHTML = "[Reply]";

  17:         if (spans[i].innerHTML == "수정")

  18:             spans[i].innerHTML = "[Modify]";

  19:         if (spans[i].innerHTML == "삭제")

  20:             spans[i].innerHTML = "[Delete]";

  21:     }

  22:     spans = document.getElementById("replySend").getElementsByTagName("span");

  23:     for (i = 0; i < spans.length; i++)

  24:     {

  25:         if (spans[i].innerHTML == "트랙백 주소")

  26:             spans[i].innerHTML = "Trackbacks";

  27:         if (spans[i].innerHTML == "댓글 달기")

  28:             spans[i].innerHTML = "<Submit";

  29:     }

  30:     labels = document.getElementById("replySend").getElementsByTagName("label");

  31:     for (i = 0; i < labels.length; i++)

  32:     {

  33:         if (labels[i].innerHTML.indexOf("이름") > -1)

  34:             labels[i].innerHTML = "Name";

  35:         if (labels[i].innerHTML.indexOf("패스워드") > -1)

  36:             labels[i].innerHTML = "Password";

  37:         if (labels[i].innerHTML.indexOf("홈페이지") > -1)

  38:             labels[i].innerHTML = "URL";

  39:         if (labels[i].innerHTML.indexOf("내용") > -1)

  40:             labels[i].innerHTML = "Comment";

  41:         if (labels[i].innerHTML.indexOf("비밀글") > -1)

  42:             labels[i].innerHTML = "Private";

  43:     }

  44: </script>

In order to apply the Javascript above, follow the steps below.

  1. Find <div> tag that holds the class, "replyList" and add id="replyList".
  2. Find <div> tag that holds the class, "replySend" and add id="replySend".
  3. Place the Javascript code above at the just before the </body> tag.

Well, it’s not the perfect way of coping with the Korean-written menu titles because the menu can be changed whenever TextCube wants. As well as, the HTML source still holds Korean menu titles because Javascript only replaces the menus after all contents is loaded.

Nevertheless, it is worth trying.

If there is any alternative, please let me know. 🙂


텍스트큐브의 스킨을 바꾼다 하더라도, 여전히 한국어로 하드코딩된 메뉴들이 존재한다. 이부분은 절대로 스킨상에서 바꿀 수 없는 내용이기 때문에, 자바스크립트로 바꿀 수 밖에 없다.

위의 자바스크립트 소스를 적용시키기 위해서는 스킨의 내용을 약간 수정해서 적용시켜야 한다. 그 순서는 아래와 같다.

  1. "replyList" 라는 클라스 이름이 있는 <div> 태그를 찾아서 id="replyList"를 추가한다.
  2. "replySend" 라는 클라스 이름이 있는 <div> 태그를 찾아서 id="replySend"를 추가한다.
  3. </body> 태그 바로 윗부분에 위의 자바스크립트 소스를 추가한다.

텍스트큐브에서 언제든 한글메뉴 구조를 바꿀 수 있기 때문에 이 방법이 완벽한 것은 아니다. 또한, HTML 소스를 완전히 브라우저로 로드한 다음에 영문메뉴로 바꿔치기를 하는 것이다보니 HTML 소스보기를 하면 여전히 한글메뉴가 보인다.

그럼에도 불구하고 바꿔보는 것도 나쁘진 않겠지.

Advertisements

Written by Justin Yoo

26/05/2009 at 01:57