카테고리 보관물: Korean Localization

HTML5 를 위한 기본 템플릿 HTML5Boilerplate

웹 개발을 위해 기본적으로 사용되는 프론트엔드 소스 코드들을 몇년에 걸쳐 모으고, 버릴 건 버리고 취할 건 취해서 기본 템플릿의 Best Practice 를 만들어냈다. 이름하여, HTML5Boilerplate (줄여서 H5BP)

이름에서 알 수 있듯이 HTML5 요소들을 사용하며, IE6+ 호환을 모두 고려하여 작성된 코드들이고, 모바일에도 최적화되어 있다.

간단한 코드들이지만, 한땀한땀 장인들 (많은 오픈소스 공헌자들) 에 의해 새롭게 추가되거나 변경/삭제되었다. 처음에는 @paul_irish 혼자 시작했지만 현재까지 많은 사람들이 코드 개선에 참여했다. 물론 코드 개선은 지금도 현재진행중이다. (https://github.com/h5bp/html5-boilerplate)

소스들을 살펴 보면 index.html 을 비롯해 견고하게 완성된 기본 style.css 를 제공하고, favicon 이나 모바일 기기의 홈 아이콘인 apple-touch-icon.png 파일도 사이즈별로 구성하고 있다.
(코드에 출처에 대한 링크가 코멘트되어 있어서 더 자세히 공부해 볼 수 있다)

살짝 index.html 만 가져다 살펴보면, 대략 아래와 같다.

<!doctype html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title></title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="css/style.css">
<script src="js/libs/modernizr-2.5.3.min.js"></script>
</head>
<body>
<header>

</header>
<div role="main">

</div>
<footer>

</footer>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script>

</body>
</html>

단순히 HTML/CSS/JS 만 모아 놓았지만, 처음 프로젝트 만들 때 간단하게 복사해서 필요한 부분만 쓰기에도 편하고 좋다. 추가적으로 웹서버 설정 (아파치 .htaccess 등) 파일등도 최적화 되어 있고 robots.txt , humans.txt (옵션) 등도 제공해주고 있다.

한글화에도 참여해 봤다. gnutext 라는 GNU기반 유틸리티에 의해 messages.po 파일만 한글화 작업을 해놓고 스크립트로 빌드를 돌리면, 자동으로 빌드해서 사이트를 만들어 준다. (물론 H5BP 의 템플릿 주석까지도 모두 한글화된다. 하지만 기본적으로 H5BP 는 영문 주석판만 공개하고 있다. 해당언어의 주석이 들어간 버전을 받고 싶다면, template 경로로 접근하면 된다. 한글 코멘트된 index.html 예 view-source:http://ko.html5boilerplate.com/template/index.html //다만 현재버전으로 생성된 게 아니라서 현재 버전에는 삭제된 코드들도 남아있다. -_-;;)

이 messages.po 파일도 msgId (영어원문) 와 msgStr (한글화될 문장) 으로 구분되어 한글화 하기에는 꽤 편하게 되어 있었다. 빌드를 하면 .mo 파일이 생성되고, 바로 빌드까지 해주니 결과물을 즉각적으로 볼 수 있어 좋았다.

HTML5Boilerplate 한국어 링크 : http://ko.html5boilerplate.com/
(2012년 8월 31일 확인결과 H5BP 4.0 업데이트와 함께, 현재 한국어 링크는 제공되고 있지 않음)

사이트에 들어가 보면 보다 자세한 내용들이 있고, 소스를 다운받아 하나씩 보면 더 자세하게 알 수 있다. (대부분 코드가 간단하게 코드 설명을 위한 코멘트가 되어 있고 보다 자세한 설명을 위해 링크까지 제공해준다. 링크를 따라가 보면, 코드 출처에 대한 자세한 설명을 얻을 수 있다.)

[2012년 8월 31일 현재]
H5BP 4.0 으로 버전업 되면서 사이트 개편과 함께, 다국어 링크가 사라졌다.

태그 지정됨 ,

jQuery 기반 위지윅에디터 redactorjs 한글화

개인적인 용도나, 비영리 목적으로는 무료로 사용가능한 jQuery 기반 위지윅에디터 redactor

링크 : http://redactorjs.com/

기존 위지윅 에디터인 TinyMCE 나, CKEditor 보다 절반도 넘게 용량이 작아서, 최대 무려 9배나 빠르다고 한다. 크롬, 파폭, 사타리, IE8+ 지원하고 심플한데다 보기도 편한데 한글지원이 되고 있지 않아, 한글화 작업에 참여했다. 7.7 버전(2012/6/27)부터 한글화된 언어의 로딩이 가능하다.

언젠가는 Optimization and improvement 에도 참여해 보고 싶고, 궁극적으로는 직접 개발해 보고도 싶다. 물론, 아직 갈 길은 멀지만.. 천천히 한걸음씩 가다 보면 도달 하겠지~.

 

MPlayerX 1.0.14 업데이트

지난주에 MPlayerX 가 1.0.14 로 업데이트 되었습니다.

1.0.12 사용할 때부터 한글화 작업에 참여해서 1.0.13 버전부터 한글지원이 추가되었는데 이 때 당시에 제가 맥 시스템 폰트를 나눔고딕으로 쓰고 있었기 때문에 나눔고딕을 기반으로 확인을 했었는데 나중에 애플고딕으로 확인해본 결과 -_- 설정화면에서 일부 글씨짤림이 있었습니다. 그래서, 이번 버전부터 그 문제가 해결됐습니다.
(여담이지만, 이후부터는 그러한 잠재적 문제의 소지를 없애기 위해 울며 겨자먹기로 시스템폰트로 애플고딕을 그냥 쓰고 있습니다)

그외에, 추가된 기능으로 youtube 지원을 하기 시작한 건데, youtube 의 동영상 URL 링크 (http://블라블라) 를 복사한 담에, CMD+U 또는 파일 > URL열기 를 통해서, youtube 의 동영상을 재생시킬 수 있습니다.

http://itunes.apple.com/kr/app/mplayerx/id421131143?mt=12

 

태그 지정됨

Open Source for You (한글번역)

이 글은, 호주에서 오픈 소스 개발자로 활동하고 있는 Stephen McDonald (@stephen_mcd)의 글을 번역했습니다. 읽고 느낌이 좋아, 번역해 보려고 했는데 쉽지는 않군요. 원문의 뜻이 잘 전달되기를 바래봅니다. (오역 또는 더 나은 번역이 있다면, feedback 주세요.)

+2012년 3월 6일, engfordev.com 의 피드백 (GoogleDocs:http://bit.ly/xdxahu)을 받아서, 번역품질을 높였습니다. 참여해주신 nassol님, 원강민님 감사합니다.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

작성일 : 2011년 9월 12일
작성자 : Stephen McDonald

오픈 소스는 여러분을 위한 것

나는 얼마전, 내가 일하는 회사의 개발팀을 대상으로 오픈 소스 활동에 관한 프리젠테이션을 하게 되었다. 오픈 소스에 대한 사람들의 공통된 인식은 대략 이러했다. 오픈 소스 커뮤니티에서 개인은 보상을 거의 받지 않고, 이타주의적인 마음을 가지고 운영하는 거대한 사회적 히피집단 같다는 것이 오픈 소스 커뮤니티에 대한 공통된 인식이었다. 나는 이런 근거 없는 믿음을 깨뜨렸다. 그리고 오픈 소스 커뮤니티에서는 사람들이 자신을 위해, 그리고 자신의 이익을 위해 오픈 소스 활동에 참여한다고 설명하였다. 내가 초점을 맞춘 부분에는 몇가지 불편한 진실도 있기는 했지만, 개발팀은 발표내용을 잘 받아들였다.

힘들고 짜증나는 업무(는 이제 그만), 프로그래밍을 다시 즐거운 놀이로 만들자

만약 여러분이 전형적인 회사에서 9시부터 5시까지 일하는 정규직 소프트웨어 엔지니어라면, 여러가지 이유로 인해 업무에 짜증을 느끼고 있을 가능성이 높다. 여러분은 항상 같은 종류의 프로젝트에 참여하고, 같은 기술을 가지고 일을 해야 한다. 심지어는 낡은 기술을 사용하기도 하고. 사실 그 기술보다 더 세련된 기술이 존재하지만, 회사에서는 아직 검증되지 않았다는 이유로 실무에 적용하는 것을 허락하지 않을 것이다. 또한 일정의 마감시간도 지켜야 하고. 마감시한은 최대한 빨리 기능들을 만들어 내도록 요구하기 때문에 (그것은 결국 결과물의 품질에 좋지 않은 영향을 주고) 여러분은 때로 개발자로서의 자존심을 버리고, 막코딩을 하게 된다.

만약 이런 일이 여러분의 유일한 프로그래밍 경험이라면, 금방 싫증도 나고, 모든 게 전혀 재미도 없을 것이다. 하지만 정반대의 경우라면, 프로그래밍은 정말 굉장히 재밌을 수 있다! 이렇게 상상해 보자. 여러분의 회사에 수백가지의 프로젝트가 있다. 그리고 여러분은 그 중에 여러분이 원하는 하나의 프로젝트를 선택할 수 있다고. 게다가, 회사에서는 여러분이 원하는 기술을 사용할 수 있도록 허락하고, 최종 결과물이 충분히 멋지게 나올 때까지 일정을 주겠다고 말한다. 마치 슈퍼 개발자처럼. 꿈처럼 들린다고? 아니, 오픈 소스 프로젝트를 할 때 만큼은 여러분이 슈퍼 개발자이다. 업무를 고르고, 사용할 기술을 선택하자. 일정도 마음대로 짜자. 그리고 제품의 품질까지도 말이다.

협업을 통해 더 훌륭한 개발자가 되자

더 좋은 개발자가 되기 위해서는 두가지 방법이 있다: 하나는 코드를 작성하는 것이고, 다른 하나는 코드를 읽는 것이다.
혼자서만 개발하면 이 두가지 방법을 쓸 수가 없다. 자신이 작성한 코드를 읽으면 흐뭇할지는 몰라도 배우는 게 별로 없다. 그리고 혼자 코드를 작성할 수는 있겠지만, 스스로 배우는 것 외에는 아무런 교훈이 없을 것이다. 너무나 당연하지만 진짜로 배우는 것은 다른 개발자들과의 상호작용하는 과정에서 나온다. 다른 개발자들이 검토해보고 피드백을 줄 수 있는 코드를 작성하면서 말이다. 그리고 더 많은 경험을 가진 개발자가 작성한 코드를 읽으면서, 그리고 여러분과는 다른 접근법을 가진 개발자가 쓴 코드를 읽으면서 진정 뭔가를 배울 수 있다.

여러분이 일하는 회사에 대해 생각해 보자. 여러분이 직접 협업하는 개발자는 몇명이나 되는가? 두세명? 열댓명? 작은 집단에서도 여러분은 많은 것을 배울 것이다. 그러나 배우는 범위 면에서는 아무래도 한계가 있을 것이다. 오픈 소스 커뮤니티는 수천명의 개발자들이 있다. 그리고 이들은 수년간 수백만 줄의 코드를 작성했다. 이들은 여러분이 일하는 곳을 벗어나지 않고서는 접할 수 없는 품질의 코드를 작성한다.

금전적 수입을 얻자

오픈 소스 개발에 대해 오해가 많이 있는데, 그 중 가장 심한 오해중 하나는 오픈 소스 개발에 참여해서 돈을 벌 수 없다는 것이다. 어느 정도까지는 사실이지만, 실제로 금전적인 수익을 낼 수 있는 몇가지 방법이 있다. 직접적인 방법도 있고, 간접적인 방법도 있다.

여러분은 고정된 직장을 가진 상태일수도 있다. 그리고 자신이 고정수입을 갖는 월급쟁이라고 생각할 수도 있다. 다음 수입이 어디서 나올지 알 수 없는 프리랜서나 사업가와는 다르다고 생각할지도 모른다. 미안하지만 틀린 생각이다. 여러분의 사장과 마찬가지로 여러분도 사업을 하는 것이나 다름없다. 여러분에게는 고객이 한 명있다. 바로 여러분을 고용한 사장이다. 어떤 때에는 이 직장 일에 얽매여 있다고 느낄 지도 모른다. 하지만 실은 한 명의 고객에게 얽매여 있는 셈이다.

그럼 더 많은 고객을 만들고, 더 좋은 고객을 만들기 위해선 어떻게 해야 할까? 답은 여러분의 비지니스 코스를 홍보하는 거다. 오픈 소스는 여러분의 개발자로서의 능력과 여러분을 더욱 돋보이게 해주는 멋진 방식을 제공해준다. 오픈소스 프로젝트에 참여하면 여러분은 개발자로서의 능력을 더욱 돋보이게 하는 기회를 얻을 수 있다.
그래픽 디자이너와 개발자들은 항상 화려한 포트폴리오를 보여줄 수 있다. 고용 가능성이 있고, 고용 협상에 대한 자리에서 오픈 소스에 참여한 경험은 이미 열정으로 가득 차 있다는 걸 입증해 주고, 그러므로 그 자리에서 그러한 능력을 보여줄 필요도 없이, 다른 사람들보다 더욱 유리한 입장에 설 수 있다.

오픈소스 프로젝트를 일정 품질에 준하게 만들고, 사람들이 이 프로젝트를 사용하여 실제로 무언가를 만든다면, 이 자체만으로도 큰 성과이다. 이로부터 돈을 받고 일할 수 있는 기회가 생겨난다. 오픈소스 프로젝트를 사용하는 기업 사용자의 경우에 기업에 맞게 소프트웨어를 커스터마이즈해달라고 요청할 수도 있다. 또한 이들이 여러분이 생각지도 못했던 좋은 기능을 프로젝트에 추가해달라고 요청할지도 모른다. 이런 과정을 통해 여러분의 프로젝트는 한 단계 업그레이드 될 것이다. 이런 기능을 제일 잘 개발할 수 있는 사람은, 최초개발자가 아니고 누구이겠는가? 나는 이런 경험을 직접 몇 번 하였고, 몇몇 회사에서는 내가 생각했던 기능을 추가하는 것에 대해서 금전적인 지원을 해주었다. 지원을 해주지 않았더라도, 나는 그 기능을 어쨌든 개발했을 것이다.

기술 이외의 경험을 폭넓게 하자

코드를 작성하는 것은 소프트웨어 개발의 전체 과정중 일부분에 불과하다. 성공적으로 제품을 판매하는 전 과정에 관한 많은 학문 분야들이 있다. 이런 학문에는 프로젝트 관리, 커뮤니티 구축, 격식을 갖춘 글쓰기, 제품 개발 및 마케팅이 있다. 프리랜서나 1인 기업의 경우에는 이런 학문 분야를 접할 기회가 있을지도 모른다. 그러나 일반 회사에서 일하는 개발자의 경우에는 매일 코딩 외에는 다른 분야를 접할 기회가 없다.

오픈 소스 프로젝트를 운영해보면, 기술(technology) 이외의 분야에 관한 스킬을 익힐 수 있을
것이다. 나는 내 프로젝트 중에서 가장 인기있는 프로젝트 관련 작업을 하는데 시간을 많이 쓴다. 이 시간중에 코딩 작업에 쓰는 시간은 그 비중이 얼마 안된다. 시간 중 대부분은 다른 개발자들과 기능에 대한 아이디어를 나누고 토론하는데 쓴다. 어떤 기능을 넣을지, 뺄지를 의논하는데 쓴다. 이런 작업은 어렵기는 하지만 멋지고 의미있는 경험이다.

이런 일들에서 알 수 있듯이, 오픈 소스에 참여하고 싶어하는 많은 사람들이 기술적인 분야와는 무관하므로 자신은 기여할 무언가가 없다고 생각한다. 하지만, 모든 것은 연관되어 있어서 기술과는 관련없는 부분이 가장 유익한 참여중 하나라 볼 수 있다. 만약 여러분도 그렇다면, 시작을 주저하지 말아야 한다. 여러분의 참여는 상상이상으로 큰 의미가 있다.

좋은 사람이라고 느끼기

오픈 소스 참여의 가장 확실한 장점은, 애타주의로 타인에게 도움을 주는 거라고 생각한다. 전에도 얘기했지만, 작지 않은 오픈 소스 프로젝트를 관리하는 일은 고생을 동반하게 된다. 오픈소스에 참여하다보면 좋을 때도 있고 나쁠 때도 있다. 때로는 끝이 없는 일처럼 느껴지기도 한다. 하지만 가끔, 나는 어떤 동기를 가진 공개모임에서가 아닌, 순수한 진심을 담은 개인적인 감사 메일을 받기도 한다. 직접 해보기 전까지는 그 일이 딱히 의미가 있다고 생각해본 적은 없었다. 내가 실제로 직접 경험해 보고 나니, 진정한 긍지와 만족감을 채워주고 궁극적으로 모든 것을 가치있게 만들어준다는 것을 알게 되었다.

지금 당장 시작하자

중국의 철학자 노자는 이렇게 말했다:

천리의 여행도 한 걸음에서 시작된다.
(千里之行 始於足下)

시작하려고 하는데 겁이 날 수도 있다. 작은 것부터 시작하자. 여러분의 오픈소스는 아무에게도 쓸모 없을 것이라고 내면에서 속삭이는 목소리를 무시하자. 그럴 수도 있다. 하지만 그래도 상관없다. 그래도 하자. 내 프로젝트 중 많은 것은 몇 십줄 짜리 코드였다. 그런데 사람들은 내가 상상하지도 못했던 방식으로 그 소스를 유용하게 사용하였다.

아이디어는 잘 오지 않는다. 내 아이디어중에 대부분은 내가 아쉬워했던 것들이었다. 예를 들어 내가 관심있는 기술 영역에서 제품이 개발되어 있지 않는 경우에 내가 개발할 수 있겠다는 생각에서 개발 아이디어를 얻었다. 또는 내가 일상적으로 하는 루틴한 것들을 자동화하거나 개발할 수 있겠다는 지점에서 아이디어를 얻었다.

여러분이 어떤 오픈소스 소프트웨어를 사용하는데, 소프트웨어가 완벽하지 않을 수도 있다. 여러분이 생각하는 것과는 다른 방식으로 작동할 수도 있고, 또 어떤 부분은 도움말에 나와 있지가 않아서 찾기 위해 고생해야 할지도 모른다. 요즘은 이런 일이 있을 때, 무려(!) 공짜로 사용하고 있는 소프트웨어에 대해서 원하는 대로 작동하지 않는다고 불평만 하고 두 손 들고 포기해 버리는게 기본 반응인 듯 하다. 그러지 말자. 그 문제에 대해 여러분이 할 수 있는 게 있다. 소스 코드를 살펴보자. 뭔가 손을 빌려주자. 자신의 능력도 향상시키고, 뭔가를 만들어가는 과정의 일부가 되자.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

태그 지정됨 ,

MPlayerX 1.0.13 한글화 버전 릴리즈

마침내, MplayerX 1.0.13 버전이 Mac 용 Appstore 에 릴리즈되었다.
아침 출근길에 MplayerX 개발자 ( @Niltsh ) 에게 소식을 들었으나, 회사에는 맥이 없기 때문에 확인해 볼 수가 없어서, 집에 와서 다운받으면서 확인해 보았다.
처음 한글화 했을 때 발생했던 한글 짤림 문제도 없고, 이상없이 잘 나온다.

(icon 모양도 새롭게 바뀌었다)

맥에도 이미 곰 플레이어가 나와 있지만, 어쩐지 MPlayerX 만 쓰게 되다가, 한글화 한번 해볼까 하는 생각에 소스를 찾다 보니 마침 github 에서 개발자의 오픈소스 저장소를 찾게 되어, 번역에 참여하게 됐다.

한글화 후기를 몇자 적자면,  번역할 분량이 얼마 되는 것 같지 않은데도, 꽤 상당한 시간이 걸렸다. 재미난 일이긴 한데, 그 재미 만큼이나 기계적인 에너지 소모량도 발생했다. 맥에서 사용되는 주요 공통단어는 사파리 메뉴와 비교를 해가면서 작업했고, 곰플레이어의 메뉴 한글도 참조했다. MPlayerX 의 영어버전과 일본어버전을 참조·비교해가면서 작업했다.  그리고 번역할 부분을 찾을 때 프로그램 화면에는 존재하는 문장인데 vim 이나 일반 에디터 프로그램에서 search 할 때에는 암만 해도 안나와서 조금 애를 먹었는데 단순히  encode 되지 않는 코드 (Base64 UTF-8 Encoding) 의 인코딩 작업도 필요했다.

릴리즈 전까지는, 별 느낌 없었는데 막상 릴리즈 되고 나니, 기분이 좋다~.

p.s. 오역 또는 매끄럽지 않은 한글 번역이 있으면, 트위터 @rkjun 으로 멘션 주세요.

태그 지정됨 , , , ,