오픈소스 기여를 한번도 해본 경험이 없는데 번역하는 것으로 시작해보고 싶어졌다.
무엇을 할까 고민하다가 평소에 자주 들어가는 MDN Web Docs 를 목표로 잡았다.
파파고와 GPT 그리고 구글링과 함께라면 번역은 두렵지 않으니까..!
당장 도전!
참고) 기초적인 Git 을 다룰 줄 안다는 가정하에 작성했다.
방법
일단 두 개의 레포지터리를 다룰 것이다.
https://github.com/mdn/translated-content
https://github.com/mdn/content
1. 두 개의 레포지터리를 fork 해온다. Fork 버튼을 누르면 된다.
2. [본인 깃허브 ID]/translated-content 레포지터리와 [본인 깃허브 ID]/content 레포지터리를 둘 다 로컬에 clone 한다.
초록색 Code 버튼을 눌러서 주소를 복사한다음에 git clone [주소] 명령어를 실행하면 된다.
3. content 폴더에 package.json 과 같은 경로에 .env 파일을 생성한다.
.
├── translated-content
├── content
| ├── .github
| ├── files
| ├── pr-lint
| ├── rfcs
| └── scripts
| └── .editorconfig
| └── .env <==== content 폴더 내부에 만들어준다.
| ├── ...
└── ...
그리고 CONTENT_TRANSLATED_ROOT 에는 본인의 translated-content/files 에 해당하는 경로를 적어준다.
CONTENT_TRANSLATED_ROOT=/path/to/translated-content/files
EDITOR=code
4. content 폴더에서 yarn 을 실행시킨다(yarn 설치해야함).
yarn install
yarn start
yarn start 를 하면 한국어 번역 문서를 http://localhost:5042/ko/ 에서 확인할 수 있다.
보면서 번역한 웹페이지가 실제로 어떻게 보일지 미리 보면서 작업할 수 있다.
5. 번역/수정하고자 하는 부분을 content 에서 고른다.
나는 content 에는 있고, translated-content 의 한국어 문서에는 없는 부분을 하나 골라 진행했다.
enumerability_and_ownership_of_properties 👈 이 문서가 content 에는 있는 데 한국어 문서로는 번역이 안되어있었다.
따라서 translated-content 폴더에 content 에 enumerability_and_ownership_of_properties 가 있던 똑같은 위치에 폴더와 index.md 파일을 생성했다.
그리고 content 에 있던 영어로 된 index.md 를 복사해와서 번역하기 시작했다.
6. 번역이 모두 끝나면 수정한 파일을 git add 하고 commit 한 다음에 git push 를 진행한다.
그러면 아마 fork 한 translated-content 레포지터리에 다시 들어갔을 때 위에 Compare & pull request 메시지가 뜰 것이다.
버튼을 눌러서 Open a pull request 를 만들어준다.
7. PR 를 만들어서 올리니 아래와 같이 자동으로 GithubActions 봇이 몇몇 수정사항들을 탐지해서 suggested change 를 보여주었다.
수정사항을 수정하도록 commit 버튼을 눌러서 반영한다.
(24.6.10 추가)
8. 이제 리뷰어 분이 검토해주실 때까지 기다리다가, 수정할 부분이 있다면 수정 및 커밋 한다.
나는 커밋하고 열흘 정도 있다가 피드백을 해주셨다.
'문서 갱신 표시를 위해 소스 커밋 표기를 해야한다'는 게 처음에 무슨 의미인지 몰랐다.
그래서 나같은 코멘트를 받은 다른 사람의 PR를 찾아보다가 메타 데이터 작성 방법에 대한 문서를 찾았다.
https://github.com/mdn/translated-content/blob/main/docs/ko/guides/meta-data-guide.md
번역된 문서가 영어 원문 문서와 어느 시점까지 동기화 되었는지 나타내는 '소스 커밋(sourceCommit)' 이라는 게 있었다.
그래서 내가 번역한 영어 원문 문서에 가서 가장 최신 커밋의 해시 값을 복사해서 추가했다.
일단 해시값은 가장 최신 커밋 페이지에 들어가서, 주소창에서 복사해올 수 있다.
그리고 l10n.sourceCommit 메타데이터를 추가하고 다시 커밋을 진행했다.
리뷰어 분이 다시 멘션해달라고 하셨기에, 리뷰어 분을 언급하고 댓글을 추가로 남겼다.
(24.6.18 추가)
정상적으로 머지가 완료되었다!
아래는 번역한 문서의 링크:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Enumerability_and_ownership_of_properties
ref:
https://choar816.tistory.com/161
https://github.com/mdn/translated-content/issues/827