저를 포함해서 대부분의 html 초보들이 꼭 필요한 기능이라고 생각하면서도 헤깔려하는 부분이 새 창을 어떻게 띄우느냐 하는 문제입니다. 새 창을 띄우는 방법은 여러 가지 방법이 있습니다만 html을 이용해서 띄우는 방법이 간단합니다. 물론 사용자가 스스로 새 창을 띄울 수도 있습니다. 링크를 클릭할 때 오른쪽으로 클릭해서 새 창에 링크 열기 또는 (불여우나 ie7 이상에서) 새 탭에 링크 열기를 하면 됩니다. 물론 shift키를 누른 상태에서 그냥 마우스를 클릭하면 되기도 합니다.
그런데 html 작성자가 새로운 창이나 탭에 링크를 열게 하려면 어떻게 해야 할까요? 답은 간단합니다. TARGET 속성을 이용하면 됩니다.
여기서 속성에 어떤 문자열을 넣느냐에 따라서 새 창이 뜰지 어떨지가 바뀌게 됩니다. 속성은 몇 가지가 있습니다. _blank, _parent, _self, _top _blank는 무조건 새로운 창을 띄우고 링크를 엽니다. 불여우의 경우에는 새 탭에서 링크를 엽니다. _parent는 부모창에서 엽니다. 부모창은 그 창이 열린 링크를 갖고 있는 창을 말합니다. 만약 부모창이 없다면 _blank와 동일하게 되구요... _self는 자신의 윈도우에서 열립니다. 이는 쓸모가 없을 듯 싶습니다만 분명 쓸모가 있습니다. iframe이 많이 쓰이던 시절에 사용되던 것이라고나 할까요? ^^;; _top은 창문들의 가장 첫 번째로 열린 창에 링크를 엽니다. 별 필요가 없겠죠?
이 3개의 속성 말고도 몇 가지 속성이 더 있습니다만 쓸모가 별로 없더군요. (그래서 저도 잊어먹었습니다.) 임의의 문자열을 만약에 준다면 어떻게 될까요? 임의의 문자열을 속성으로 갖는 윈도우가 열립니다. 예를 들어 많은 링크를 클릭하면서 한 창을 통해서 계속 보고 싶다면 임의의 동일 문자열을 링크마다 속성으로 주면 됩니다.
위의 질문에서 이야기한 _new 속성은 사실상 특별히 지정된 것이 아니고 임의의 문자열을 준 것과 같은 결과가 나타납니다. _new가 특별히 지정된 속성이 아니기 때문입니다. 다만 new라는 단어의 뜻 때문에 사람들이 헤깔리는 것일 뿐입니다.
head 부분은 자막의 기본적인 정보를 입력하는 부분입니다. head가 없어도 대부분 자막이 잘 표시될 수 있지만, 더 나은 자막을 만들기 위해서는 head를 잘 설정해야 합니다.
자막 수정 유틸리티를 사용해서 자막을 수정하면 <Title> 부분의 안에 유틸리티 정보가 들어가기도 합니다. 하지만 이 부분에는 원래의 영상물의 정보가 들어가야 합니다. 예를 들어 하나의 영화로 만든 여러개의 동영상이라고 하더라도 동영상에 따라서 자막이 화면에 나오는 시간(Sync)이 달라지므로 Title 정보에는 영화 제목과 릴 정보(다시 말해서 동영상 파일의 이름), 동영상 크기를 함께 넣는 것이 관례화 되어있습니다. 친절하게 자막을 만들어주지 않는 경우가 많지만, 혼동이 있을 경우에 때때로 메모장같은 text 편집기로 자막파일을 열어보면 정보가 들어있는 경우도 많습니다.
자막으로 출력될 글씨들에 공통으로 적용될 성질을 설정하는 내용은 STYLE 태그 속에 넣습니다. STYLE 태그 내부에 들어갈 내용은 주석 기호 <!--와 -->로 감싸야 합니다. 이 안에는 글씨에 적용될 성질, 언어 설정, 글씨 크기 설정 등등 몇 가지 사항이 삽입될 수 있습니다. 물론 주석 기호로 감쌓인 것들이 자막의 다른 부분에 있다면 플레이어는 이러한 부분을 모두 무시할 것입니다. 그래서 하고싶은 말이 있을 경우에 주석으로 여기저기 기록해 놓는 것도 가능합니다.
P{ }로 작성되는 부분은 자막 전체에 적용될 성질을 나타내는 부분입니다. 이 설정도 여러가지로 할 수 있다고 생각되는데, 그렇게 작성한 자막을 본 적이 없습니다. (사실은 적용시켜 본 적이 있는데, 두 개 이상을 지원하는 플레이어를 찾지 못했습니다. ^^;) 제가 즐겨 사용하는 KMP의 경우는 이 부분을 완전히 무시해 버리고, 자체의 옵션을 이용해서 여러가지 글씨의 설정을 조절할 수 있습니다. 하지만 동영상을 재생시킬 때마다 매번 자막 설정을 새로 하는 것보다는 이 부분을 지원해 주는 것이 자막을 이용하기가 더 쉬울 것 같습니다. 다음번에 지원되길 기대해 봅니다.
'.'으로 시작되는 줄이 언어 설정을 하는 부분입니다. .KRCC { Name:Korean; lang:ko-KR; SAMIType:CC; } KRCC는 꼭 이렇게 정해져 있는 것이 아니어서 다른 문자열을 사용할 수 있지만 한글 자막의 경우 관용적으로 이렇게 사용합니다. 영어 자막은 ENCC, 일본어 자막은 JNCC 등으로 기록합니다. 괄호 안의 Name은 언어의 이름을 나타내는 말로 Korean이라고 쓴 것이 플레이어에서 언어를 고를 때 나타나는 말입니다. 한글 자막의 경우 'Korean'이나 '한국어'로 쓰면 되겠죠? 하지만 한글이 지원되지 않는 시스템에서도 이름을 정확히 표시하려면 영어로 표시하는 것이 좋겠습니다. ^^; lang 부분은 언어정보, SAMIType는 자막을 해석할 방법을 알려주는 말하는 부분인데, 특별히 작성하는 방법 없이 보기와 같이 사용하면 되겠습니다. (Lang 부분은 보통 언어명-사용국가명 형식으로 표기합니다.) 여러 개의 자막을 한 파일에 설정하여 다중언어 자막을 만들 수 있습니다. 보통 우리나라에서는 한글/영어/일본어를 설정하여 자막을 만드는 건 다들 아시죠?
# 형태로 작성된 줄들이 글자의 크기를 설정하는 부분입니다. 플레이어에 따라서 글자 크기를 조정할 수 있는 메뉴가 있는데, 이 항목으로 어떤 메뉴를 만들지를 결정하는 것입니다. Name 부분은 글씨 크기를 나타내는 말입니다. 개수가 정해진 것이 아니므로 다양하게 만들어 사용할 수도 있습니다. STDPrn은 기본을 나타내는데, 처음 동영상과 자막을 재생할 때 사용할 기본형을 지정합니다. KMP는 이 부분을 지원하지 않습니다.
이렇게 head 부분을 설정하면 본격적으로 영상 위에 보여질 자막을 만들어야 합니다. 이 부분은 아주 단순합니다. <SYNC Start=7000><P Class=KRCC> 자막내용 SYNC 태그의 Start는 '자막내용'이 표시되기 시작하는 시간을 나타냅니다. 단위는 ms이므로 윗 보기의 7000은 동영상이 시작한 뒤 7초 뒤에 '자막내용'을 화면에 보여준다는 의미입니다. P 태그는 head 부분에서 설정한 P{ }를 적용하라는 이야기입니다. Class는 출력할 종류를 지정하는 설정입니다. KRCC로 설정되어 있으므로 한국어 자막이 출력되기를 원할 때 '자막내용'이 출력될 것입니다. 영어로 출력되어도 '자막내용'이 출력되기를 원한다면 위와 같은 줄을 하나 더 작성해야 합니다. <SYNC Start=7000><P Class=ENCC> 자막내용 class를 바꿔주면 그 언어가 어떤 문자로 사용됐는지에 상관없이 출력됩니다. 한글 자막을 보기를 원하는 경우에도 영어로 된 부분이 있을 수 있으니 당연한 것이겠죠.
출력된 자막을 지우는 방법은 존재하지 않습니다. 그렇다면 한 번 자막을 출력한 뒤에는 다음 대사가 있을 때까지 그 자막을 계속 보고 있어야 할까요? 그래서 사람들은 편법으로 " "를 사용합니다. 는 원래 html 문서에서 공백(space)을 나타내는 문자열입니다. html에서는 기본적으로 공백이나 탭문자나 줄바꿈 문자가 연속으로 여러 개 포함되어 있을 경우 모두 공백 하나로 인식하도록 되어있기 때문에 공백을 넣을 수 없는 위치나 공백을 연속적으로 여러 개 넣기를 원할 때에 사용합니다. sami에서도 기본적으로 공백을 무시하기 때문에 공백 하나를 출력하라는 의미의 를 사용하여 공백 하나를 출력하여 현재 나와있는 자막을 지우는 것입니다. <SYNC Start=7000><P Class=KRCC> 자막내용 <SYNC Start=8500><P Class=KRCC> 이와같이 자막을 만들면 7초에 '자막내용'이 출력된 뒤에 8.5초에 사라지도록 되는 것입니다.
하나의 자막을 여러 줄로 표시하고 싶을 때는 <BR> 태그를 사용하면 됩니다.
자막을 작성하다가 단 한 곳의 색만 녹색으로 바꾸고자 한다면 어떻게 하면 될까요? 원하는 곳을 <font color=green> </font>로 감싸주면 됩니다. 예를 들어 "자막내용"을 "자막내용"으로 바꾸려고 할 경우에는 <SYNC Start=7000><P Class=KRCC> 자<font color=green>막내</font>용 으로 만들면 막과 내 글자만 녹색으로 바뀝니다. font 태그로 설정할 수 있는 글씨 성질(글자색, 배경색, 글자크기 등등)은 모두 사용할 수 있습니다만 모든 것을 지원하는 플레이어가 없습니다. 그러니 보통은 글자색과 글자크기만 사용합니다. KMP에선 글자크기도 지원하지 않습니다. 또한 marqee 태그, <right>나 <center> 태그, <B>나 <U>나 <strike> 태그 등 html 태그에 사용되는 대부분의 태그를 사용할 수 있습니다. 플레이어에서 지원해 주는지를 떠나서.....
마지막으로 자막을 만들 때 주의할 점을 몇 가지만 알려드려야겠네요.
첫번째로 다중언어 자막을 만들 경우 한 언어로 작성되는 자막은 시간순대로 정렬되어 있어야 합니다. 늦은 시간의 자막이 앞에 나오게 되면 그 자막이 출력될 때까지 아무런 자막도 출력되지 않게 됩니다.
두번째로 자막은 정확한 직역보다는 영화의 흐름에 따라서 적당히 의역하는 것이 좋습니다. 말보다 글씨를 읽고 이해하는 속도가 느린 것이 당연하기 때문에 모든 것을 정확히 번역하려다보면 자막을 이해하기가 점점 더 힘들어질 것이기 때문입니다. 그래서 자막을 만들 때는 싱크(Sync) 조절과 과감한 생략이 중요할 경우가 많습니다.
세번째로 자막 파일의 인코딩 문제인데 이전의 Text파일로 작성해도, 새로운 규격의 UTF-9 파일로 작성해도.... 잘 작동합니다만................. 이 두 형식이 섞이게 되면 제대로 출력하지 못하는 문제가 발생합니다. 섞이는 현상은 두 개의 파일을 복사하여 하나의 파일로 만들 때 자주 나타나는 현상으로 자막파일을 텍스트 에디터로 열어서 아무리 살펴봐도 원인을 알 수 없기 때문에 정상적으로 작동하지 않는다고 생각될 때는 한 번쯤 점검해 봐야 합니다.
그러나..... 영화 자막 등은 기본적으로 저작권에 위배될 가능성이 크다는 점은 주의를 요합니다. 대사들은 기본적으로 시나리오 작가의 저작물이고, 자막 작성자가 시나리오 작가의 허락을 받지 않은 이상 저작권을 위배했다고 볼 수 있기 때문입니다.
그럼에도 불구하고 제가 이 글을 작성하는 이유는...... 자막을 작성하는 일을 한 번정도 해보면 블로그 스킨을 수정하는 일을 조금은 더 쉽고 친근하게 느낄 수 있기 때문입니다. 다들 아시다시피 Tattertools 계통의 블로그를 운영하는 이상 스킨 편집을 계속 해야 하므로 html 편집에 대해서 조금은 공부해 두는 것이 도움이 될 테니까요. 그리고 자막이 꼭 기존의 동영상 뿐만 아니라 창작자가 만든 동영상에 맞춰서 작성될 수도 있기 때문입니다. 여러 가지 일에 사용될 수 있겠죠? ^^
직접 사용해보시면 아시겠지만 tattertools의 tag 자동편집기의 버그로 첫번째 방법으로는 내부링크를 제대로 사용할 수 없습니다. 주소를 자동으로 넣는데 그 주소가 정확한 주소가 아니라 새글을 쓰는 페이지의 주소가 자동삽입되거든요. 일단 저장한 뒤에 글의 주소를 복사해서 자동으로 추가한 주소를 삭제한 뒤에 그 자리에 넣으면 사용할 수 있습니다. 또한 more/less로 접어넣은 곳에 적용한 내부태그는 사용할 수가 없군요. ^^;
주의할 점은 name 태그를 사용한 곳은 아무런 표시를 보여주지 않는다는 것입니다. 'a' 태그는 이중으로 태그를 사용할 수 없으니까 약간의 주의를 필요로 할 것 같습니다. 재미있는 활용예를 찾아봐야 할 것 같네요.
댓글을 달아 주세요
간단하지만 좋은 팁이네요.
감사합니다.