MDN 번역 기여를 해보자!

번역 기여 당신도 할 수 있다!


Table Of Contents


기여 시작하기


얼마 전 블로그 글을 작성하다가 번역되지 않은 MDN Docs 페이지를 마주쳤다. ARIA: slider roleLogical NOT (!)이라는 페이지인데 전자는 후자에 비해 내용이 긴 편이므로 후자를 먼저 번역해 보겠다.

1. 이미 번역된 페이지인지 알아보자

중간에 en-US 부분을 ko로 바꿔서 입력해보면 그에 해당하는 한국어 번역 문서가 존재하는지 아닌지 알 수 있다. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT#double_not_!! Logical NOT 페이지 링크는 위와 같은데, 중간의 en-US를 ko로 바꾸어 본 결과

01 not found 1.png

한국어 페이지는 존재하지 않지만 영어 페이지는 존재한다는 안내를 받았다. 이렇게 뜨면 번역이 가능한 페이지라는 뜻이다🥰 ⚠️ 이미 다른 사람이 번역 후 풀 리퀘스트를 올려놓은 상태일 수 있으므로 아래에 나오는 Github 주소에서 먼저 올라온 pr이 있는지 확인까지 해주자!!

  • 여기에서 검색할 수 있다.

2. Git 저장소를 fork/clone하자

원본 영어 문서가 있는 repository와 번역본이 있는 repository를 각각 fork해와야 한다. 각각 레포 주소에 /fork를 붙이면 바로 fork하는 페이지로 이동할 수 있으니 아래 링크로 이동해도 좋다!

fork가 되었다면, 프로젝트를 로컬에 clone까지 해주자. 사이즈가 커서 fork/clone에 시간이 조금 걸린다.

3. translated-content 프로젝트에 branch를 만들자

clone된 프로젝트에서 새로운 git branch를 만들어야 한다. 찾아봤지만 branch 이름에 정해진 규칙같은 것은 보이지 않지만, ko/변경사항처럼 작성하는 사람이 많은 것 같다. 나는 ko/translate_Logical_NOT이라는 branch를 만들었다.

4. content 프로젝트에 .env 파일을 만들자

branch를 만들었다면 content폴더 내에 .env라는 이름의 파일을 만들어준다. 파일 내용은 아래와 같이 작성해주면 된다.

CONTENT_TRANSLATED_ROOT=${로컬에서 translated-content 프로젝트의 경로}

${로컬에서 translated-content 프로젝트의 경로} 부분에 로컬에서 translated-content 프로젝트의 경로를 넣어주자.

CONTENT_TRANSLATED_ROOT=C:\Users\psst54\Desktop\code\translated-content

나는 이렇게 작성했다.

5. 프로젝트를 실행하자

content 프로젝트에서 아래 명령어를 입력해서 필요한 패키지들을 설치하고, 프로젝트를 실행한다.

npm install npm start

실행된 프로젝트는 localhost:5042/ko/에서 확인할 수 있다.

6. 번역할 파일을 만들고 번역하자

아예 번역되지 않았던 문서라

01 not found 1.png

이미지가 다시 떴다.

content/files/en-us/ 아래에서 원문 파일을 찾아 translated-content/files/ko/ 아래에 동일한 위치에 놓아주자. 번역하고자 하는 페이지가 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_NOT#double_not_!! 였으므로, content/files/en-us/web/javascript/reference/operators 아래에 logical_not이라는 폴더를 찾았다. 이제 이 폴더를 translated-content/files/en-us/web/javascript/reference/operators 아래에 복사해서 붙여넣어준다.

그러면 링크에서 페이지가 생긴 것을 볼 수 있다.

로컬 페이지

이제 해당 파일을 번역하면 된다.

나는 아래 이미지처럼 번역했다.

번역된 페이지

7. commit하고 pull request를 보내자

이제 작업한 내용을 로컬 저장소에 commit하고, fork된 원격 저장소에 push하자. [여기](Pull requests · mdn/translated-content · GitHub에서 검색해서 다른 사람들이 어떻게 커밋 메시지를 남기고 있는지 살펴봤다. 나는 translate: translate Logical NOT page라는 메시지로 commit했고, 내 계정에 fork된 원격 저장소에 가보면 아래 노란색 박스에서 pull request를 보낼 수 있다는 안내가 보인다.

github

초록색 버튼을 눌러서 pr 내용을 작성할 수 있다.

pr 보내기

내용을 작성하고 Create pull request 버튼을 누르면 pr을 생성할 수 있다.

8. 소스 커밋 표기 추가하기

Pull request를 보내고 며칠 뒤, 리뷰어로부터 코멘트를 받았다.

https://github.com/mdn/translated-content/blob/main/docs/ko/guides/meta-data-guide.md 에 따라 소스 커밋을 표기해주세요. 반영 후 제게 다시 리뷰 요청 또는 저를 멘션 부탁드립니다.

번역 파일에 소스 커밋이 표기되지 않았기 때문이다. 영문 원본 문서가 업데이트될 수 있으므로 어느 버전을 기준으로 번역되었는 지 표기해야 한다. 만약 outdated된 문서라면 다시 번역해서 pr을 보내도 된다.

--- title: 논리적 NOT (!) slug: Web/JavaScript/Reference/Operators/Logical_NOT l10n:   sourceCommit: 93d2d79c1c68af93f2730d27cdea9d527eee0d7a ---

이렇게 영문 문서를 가장 최근에 수정한 commit의 hash를 넣어주자. Hash가 올바른지 확인하려면 https://github.com/mdn/content/commit/해시 마지막에 20자리 해시를 넣어서 올바른 commit인지 확인하면 된다.

나는 링크가 Logical Not이 수정된 가장 최근 commit이고, 이 버전을 기준으로 번역했으므로 93d2d79c1c68af93f2730d27cdea9d527eee0d7a를 적어주었다.

이슈를 수정했다면 꼭 리뷰어를 멘션해서 코멘트를 남겨주자!!

🎉9. Merge🎉

모든 이슈가 해결되고 문제 없는 번역의 경우에는 리뷰어가 해당 pr을 main branch에 merge해준다. 나는 추가 이슈가 없어서 이대로 merge되었다.

여기에서 내가 번역한 문서를 확인할 수 있다🥰