우분투 한국어 번역 첫걸음

Pt J·2021년 1월 23일
0

Story Of My Life

목록 보기
20/31
post-thumbnail

서론

한 가지 문제의식을 느꼈다.
COVID-19와 함께 한 2020년, 그리고 비대면 온라인 활동의 강제 대중화.
그 속에서 우리는 변화에 잘 대처해왔는가?

이것은 개인적인 아쉬움에서 비롯된 끄적임이다.

@피터는 2020년 여름과 가을, 오픈소스 컨트리뷰톤이라는 프로그램에 참여했다.
구체적으로는 우분투 한국어 번역 프로젝트에 참여하였으며 이에 대한 포스팅도 작성한 바 있다.

오픈소스 프로젝트에 대한 기여와 우분투 커뮤니티 활동이 목표였던 만큼
컨트리뷰톤 기간이 끝난 후에도 종종 번역 활동을 하며 슬랙에서도 활동하고 있다.
// 사실 컨트리뷰톤 채널에서만 활동하고 나머지는 그저 존재만 했는데
// 최근에 일반 채널과 번역 채널에서도 말을 텄다.
// 우분투한국커뮤니티 슬랙 서버에 들어오고 싶은 분이 있다면,
// 이 포스팅 하단에 초대 링크를 남겨 놓았다.

그런데 우분투한국커뮤니티 슬랙에 새로 오신 분이 번역 활동에 관심을 갖고 참여하고자 하는데
번역 활동에 대한 가이드라인이 없어 어려움을 겪는 모습이 보였다.
이전 번역 워크숍 발표 자료 등을 찾아서 참고하라고 전해드리며 새삼...
첫 발을 내딛는 자를 위한 가이드라인이 잘 되어 있지 않은 것 같다고 느꼈다.
// 생각해보면... 번역 활동에 관심을 갖는 사람이 커뮤니티 홈페이지나 슬랙 서버에서
// 런치패드로 바로 넘어올 수 있는 링크 같은 것도 딱히 없는 것 같다...?
// 뭐랄까, "엥? 그런 것도 있었어요? 그건 어떻게 참여할 수 있는데요?" 할 법한 그런 무언가...ㅋ

오프라인으로 쉽게 모일 수 있던 때는 번역 워크숍이 진행되곤 했다지만 그럴 상황이 안되는 현재,
우분투 한국어 번역 활동을 시작하고자 하는 초심자가 원활하게 번역팀에 가입해서 활동할 수 있을까?

공식적으로 제공되는 자료들

먼저 우분투 한국 커뮤니티 홈페이지를 확인해보자.
번역 활동과 유관한 자료를 찾을 수 없다.

그리고 워크숍 발표 자료를 확인해보자.

자료가 있긴 하다. 있긴 한데...
컨트리뷰톤 오프라인 교육 때도 이 자료를 사용했던 기억에
앞서 언급된 번역 채널 뉴페이스 님한테 이 자료 링크를 보내드렸더니
그 분은 Windows를 사용하는데 Windows 환경의 설명이 없다고...
그래요, 우분투 커뮤니티라고 다 우분투를 쓰는 건 아니죠.
아무튼 그래서 Windows에서 GPG 키 생성하는 자료를 추가적으로 찾아서 보내드렸다.

뭐, 위 자료를 통해 어떻게 런치패드까지 갔다고 하자.
운영 규칙번역 페이지의 링크를 얻을 수 있다.
그런데 카르마가 뭐고 또 여기서 뭘 어떻게 해야 하는지...

사실 번역 활동이라는 게 한 번 방법을 알면 그 이후로는 번역 그 자체의 어려움 밖에 없지만
처음 시작할 때는 정말 사소한 것조차
"이거 이렇게 하는건가?" "이렇게 하면 되나??" "맞나???!?!!" 하게 된다.

번역 워크숍이 진행되던 때에는 워크숍에 참여하며 그 방법을 익혀 나갈 수 있었지만
지금은 그저 지난 워크숍의 발표 자료들만 남아있고
그것마저도 본격적인 번역 활동은 현장에서만 진행될 뿐 발표 자료에는 나와 있지 않다.
발표 자료 따라서 근처까지 와놓고 문앞에서 돌아가는 일이 충분히 발생할 수 있다는 것이다.

그런 의미에서 비대면 온라인 상황에서 번역 워크숍 없이 따라갈 수 있는,
실제 번역 활동까지 방향성을 제시해주는 가이드라인이 필요하다고 생각한다.

가이드라인은 우분투 번역 활동을 하고자 하는 사람이 가장 처음 볼 수 있는 공간에 있는 게 좋겠지만
// 가령 운영 규칙과 함께 적어놓는다거나...
Velog의 SEO를 믿고(?) 개인 블로그에 끄적여 본다.
추후에 누군가 길을 헤맬 때 제시해줄 수 있는 공식 자료가 없다면
바로 전달해줄 수 있는 자료가 되도록...

주의사항
처음 우분투 번역에 참여하고자 하는 사람들 중, 우분투에서 사용하는 다양한 소프트웨어의 man page에 대한 번역을 기대하고 시작하는 사람들이 있다. 하지만 그것은 우분투 한국어 번역팀의 영역이 아님 을 밝힌다.
우분투 한국어 번역팀에서 번역하는 내용은 운영체제 전반적인 locale이다.
시스템 언어부터 소프트웨어 실행 시 보여지는 부분에 대한 번역을 패키지별로 진행한다.

가이드라인

런치패드 가입부터 번역팀 가입까지

...의 내용은 앞서 언급된 워크숍 발표 자료들에 잘 나와 있을 뿐더러,
컨트리뷰톤 오프라인 교육 포스팅 또한 다른 누군가 보고 따라할 수 있도록 작성하였으니
반복해서 설명하지 않고 넘어가겠다.
이 범위 내에서 막혔다면 댓글을 남기거나 슬랙 번역 채널에서 질문을 남기면
@피터 또는 다른 번역팀 멤버 분께서 답변을 할 것이다.

번역 참여

사실 앞에서 '번역팀 가입까지'라고 했지만 번역팀에는 아직 가입하지 못한다.
번역팀 가입 조건 중 카르마 50 점 이상 이 충족되지 않았기 때문이다.
이것은 컨트리뷰톤 오프라인 교육 포스팅에서도 언급된 내용인데,
해당 포스팅에서는 그냥 "번역 실습을 했다"로 끝냈지만 이번엔 여기에 집중하려고 한다.

먼저 카르마라는 게 무엇인지 알아보자.

카르마 karma
사전적 의미로는 업(業), 인과율적인 행위를 의미하지만 런치패드의 활동 점수라고 생각하면 된다.
런치패드에서는 "누군가 런치패드에서 얼마나 큰 기여를 했는지 보여주는 하나의 방법"이라고 설명하며
Karma is one way of showing how large a contribution someone has made in Launchpad.
번역 활동뿐만 아니라 런치패드에서 하는 모든 기여를 통해 얻을 수 있다.

카르마는 번역 활동에 대해 실시간으로 반영되지 않고 하루에 한 번 몰아서 들어오는데
한국 시간 기준으로는 17시 ~ 18시 정도에 반영된다고 한다.

카르마는 영구적인 것은 아니고 시간이 지남에 따라 서서히 감소하는데
이는 오래 전의 기여량이 아니라 최근 몇 개월의 기여량을 보여줌으로써
기여자의 최근 기여량을 반영하기 위함이며, 따라서 덜 활동적일수록 더 빠르게 감소한다.
또한 신규 기여자가 장기 기여자의 점수를 따라잡을 수 있는 기회를 제공하는 효과도 있다.
만약 영구적으로 누적되는 구조였다면 기여도 랭킹에 신규 기여자가 올라가기 힘들었을 것이다.

카르마 50 점 이상 이라는 조건을 충족시키기 위해서는
런치패드에서 번역이나 다른 기여를 해서 점수를 쌓아야만 한다.

그런데 번역팀에 가입하지 않은 상태로 번역으로 카르마를 얻을 수 있을까?

다행히도 번역팀에 가입하지 않은 상태에서도 번역 제안을 통해 카르마를 얻을 수 있다.
번역 제안과 번역 기여의 방법은 크게 다르지 않다.
New translation 대신 Translation suggestion이라고 떴던가?
너무 오래 전(?) 일이라 잘 기억나지 않는다.
솔직히 번역팀이 아닌 채 번역 제안을 한 기간보다 번역팀으로서 번역을 한 기간이 훨씬 길다.
이건 잊을 만하다.

번역은 런치패드의 우분투 프로젝트 번역 메뉴에서 할 수 있다.
시간의 흐름에 따라 패키지 버전이나 번역 status가 달라지겠지만 다음과 같다.

선호하는 언어의 번역 페이지 링크가 출력되며,
따로 지정하지 않으면 모든 언어의 번역 페이지 링크가 출력될 것이다.
선호하는 언어는 https://launchpad.net/~사용자이름 형식의 개인 프로필 화면에서
사용자 정보의 Languages 를 통해 변경할 수 있다는 건 여담.

아무튼 Korean을 선택하면 현재 작업 중인 패키지 버전(여기선 21.04 Hirsute Hippo)의
한국어 번역 페이지에 접속할 수 있다.

수많은 패키지들의 이름이 나열되어 있는 것을 볼 수 있으며,
대부분의 패키지의 상태가 초록색으로 채워져 있지만 붉은 색이 보이는 녀석들도 있다.
그리고 이 붉은 색은 뒤로 갈수록 많아지는 경향이 있다.
화면 상의 패키지 출력 순서는 기본적으로 중요도 순이라는 것 같다.

여기서 번역하고자 하는 패키지의 이름을 클릭하면, 가령 sudo 패키지를 선택했다고 하자.
다음과 같이 페이지당 10개의 문자열이 출력되는 것을 확인할 수 있다.

English 바로 옆의 화살표 버튼을 누르면 번역 없이 원문 그대로 사용할 수 있고
Current Korean이 체크된 문자열은 번역하지 않고 넘어갈 수 있으며
New Translation의 텍스트에리어에 번역 내용을 작성하면 자동으로 라디오가 체크된다.
만약 번역을 작성하다 표현이 애매한 것 같아서 해당 문자열의 번역을 그만두려면
다시 Current Korean의 라디오 버튼을 누르면 자신이 번역한 게 반영되지 않는다.
해당 페이지에서 번역할 문자열을 모두 번역하였다면 우측 하단의 Save & Continue 버튼을 누른다.
그러면 저장과 함께 다음 페이지로 넘어가게 되며 번역을 마저 진행할 수 있다.

번역 예시\begin{matrix} \text{번역 예시} \end{matrix}

해당 페이지 번역을 마치려면\begin{matrix} \text{해당 페이지 번역을 마치려면} \end{matrix}

아래 드롭다운 메뉴에서 untranslated items 가 아닌 all items 를 선택하면
기존에 다른 사람이 번역을 했던 문자열에 대해서도 번역 작업을 할 수 있다.
기존 번역된 문자열도 검토하며 더 나은 번역을 제공하고 싶다면 all items 로,
번역되지 않은 문자열에 한해서만 번역을 제공하고 싶다면 untranslated items 로 설정하자.

번역을 하다 막혔을 때는 일차적으로 해당 문자열이 사용된 코드를 확인해보고
주변 맥락을 파악해보는 방법이 있다.
앞서 예시에서 패스했던 문자열을 보면 아래 Located in lib/util/sudo_conf.c:424 라고 써 있다.
이것이 해당 패키지에서 해당 문자열이 어느 파일 몇번째 줄에 작성되었는지 알려준다.
이에 따라 sudo 패키지의 lib/util/sudo_conf.c 파일을 찾아보면
코드 수정 사항에 따라 정확히 그 줄에 있지 않을 수는 있지만 해당 문자열을 찾을 수 있다.

이를 통해 형식지정자에는 무엇이 들어가는지, 어떤 상황에서 출력되는지 대략적으로 유추해볼 수 있다.

주변 맥락을 보고 이 문자열은 strval의 문자열이 양의 정수가 아닐 때
최대 그룹 수가 유효하지 않다며 입력된 문자열과
그것이 어느 파일 몇 번째 줄에 있는지 정보를 출력해주는 문자열이라는 것을 알 수 있다.
이제 번역을 마저 진행할 수 있게 된 것이다!

사실 여기선
"%s의 %u번째 줄에 있는 최대 그룹 개수 "%s"가 유효하지 않습니다"
라고 하는 게 더 자연스러울 수 있지만,
이렇게 번역 시 형식지정자의 순서가 바뀌는 경우에는
괄호를 써서라도 형식지정자 순서를 유지하는 쪽을 권장하셔서 위와 같이 번역하였다.


일단 기본적인 것은 이 정도인 것 같다.
번역 활동은 이것의 반복이며,
때로는 어느 파일 몇 번째 줄인지에 대한 최소한의 힌트조차 없어
그저 패키지 정보만을 가지고 맥락을 유추해야 하는 상황도 있긴 하지만 대략 이런 느낌이다.

같은 단어나 표현도 맥락에 따라 의미가 달라지곤 하기 때문에
번역할 패키지에 대한 이해도가 높을수록 번역 작업이 수월할 것으로 보인다.

본인의 카르마 점수는 프로필 페이지에서 확인할 수 있다는 건 여담.

https://launchpad.net/~사용자이름

예를 들어 @피터의 사용자 이름은 edenjint3927이므로 피터의 프로필과 카르마 점수는
https://launchpad.net/~edenjint3927 에서 확인할 수 있다.

그리고 번역 작업 시 참고할 만한 곳들이 몇 군데 있는데,

앞의 두 개는 운영 규칙과 함께 적혀 있는 번역 방식에서 소개된 사이트다.
마지막 것은 작년 핵토버페스트 서울 행사에서 이보라 님 발표에서 처음 접하게 되었는데
모던JS튜토리얼을 비롯한 여러 번역 프로젝트에서 많이 참고하는 자료로,
Microsoft의 기업 규모가 큰 만큼 많은 용어들이 번역되어 있어 유용하다.

이후에 추가적으로 필요하다고 판단되는 내용이 있다면 추가하도록 하겠다.

언제라도 어려운 부분이 있다면 슬랙 번역 채널(#0004-l10n) 혹은 댓글이나 메일도 환영이다.
// 슬랙에 여러 번역 고인물들도 있을테니 슬랙으로 가자! ⇒ 슬랙 초대 링크

profile
Peter J Online Space - since July 2020

0개의 댓글