Skip to main content

Command Palette

Search for a command to run...

Phanpy 번역 기여하기

Updated
2 min read
L

Test bio.

🐘 Phanpy?

Phanpycheeaun이 MIT 라이센스로 만든 미니멀 Mastodon 클라이언트입니다. 원래는 Mastodon 인스턴스에서 제공하는 기본 UI를 사용하다, FediDev KR 디스코드 서버 "아이디어" 포럼 중 번역 제안을 보고 알게되어 사용 및 번역해보게 되었습니다. 특별한 가입 과정 없이 "Mastodon으로 로그인" 버튼을 눌러 기존에 사용하던 Mastodon 인스턴스 계정을 연결해서 사용할 수 있습니다.

하나의 인스턴스만 연결하는 것이 아닌, 여러 인스턴스의 계정들을 연결해 사용할 수도 있어 보여 다계정의 경우 굉장히 유용할 것 같습니다!

🌐 번역

번역 시작하기

이 글을 작성하기 3주 전 즈음까지만 해도 다국어 시스템을 지원하지 않았던 것으로 보이나 지금은 번역 플랫폼인 crowdin을 설정하고 번역을 받고 있는 걸로 보입니다.

번역에 참여하기 위해서는 우선 crowdin에 가입해주세요. 많은 SSO를 지원하니 편한 로그인 방식으로 회원가입하시면 될 것 같습니다.

그리고 Phanpy 프로젝트에 들어갑니다. 그러면 다양한 언어 중 "Korean" 이 보일텐데 클릭해서 들어가주세요.

src/locales/en.po 파일이 보입니다. 클릭해서 들어가시면 번역 가능한 문자열들이 보입니다.

이제 "Enter translation here" 쪽에 알맞은 한국어 문장을 채워넣음으로써 번역에 참여할 수 있게 되었습니다! Crowdin 에서 번역된 내용들은 메인테이너가 Crowdin에서 저장소로 비동기적으로 내용을 동기화를 해주고 있는 것으로 보입니다.

이렇게 main 브랜치에 머지되고 나면 https://dev.phanpy.social/ 에서 확인할 수 있습니다!

Phanpy를 사용하다 미번역된 부분을 발견했을 경우

예를 들어 Phanpy를 사용하다 "Filtered post will be" 라는 문장이 번역되지 않았음을 발견했습니다.

Crowdin에서 "Filtered post will be" 를 검색하면 해당 문장을 찾아줍니다.

"Enter translation here" 에 번역한 문장을 채워넣고 "SAVE" 버튼을 누르시면 번역이 저장됩니다.

Crowdin을 보고 번역을 하는 경우

저는 FediDev KR 그룹의 번역 제안 글을 보고 Phanpy를 사용 및 번역하게 된 것이기도 하고, 이미 앞서 많이 번역해주셨기 때문에 미번역된 부분을 주로 Crowdin에서 미번역된 부분을 보여주는 기능을 통해 알게 되었습니다. 하지만 정확히 어떤 상황에서 사용되는 문장인지 모르기 때문에 단어 선택 등에 있어 어려움을 겪었습니다.

이때 Crowdin 번역 페이지 중 "Context" 파트를 보면 사용되는 소스코드를 볼 수 있어 도움이 됩니다. 문장을 번역하는 과정을 통해 어떻게 도움이 되는지 설명해보겠습니다.

글을 적을 때 기준 "Current" 라는 문장이 미번역 되어 있습니다. 그리고 아래 src/pages/accounts.jsx:55 라는 경로와 라인을 알려주는 "Context" 파트가 있습니다. accounts 페이지라고 하는 것 같아 "계정들..." 을 눌러봤는데 달리 "Current" 라는 내용은 없습니다 :(

위 Context 에서 알려준 경로로 가서 소스코드를 보니 계정이 여러 개 일때 보여주는 아이콘의 대체 메시지로써 사용되는 것 같습니다.

{moreThanOneAccount && (
  <span class={`current ${isCurrent ? 'is-current' : ''}`}>
    <Icon icon="check-circle" alt={t`Current`} />
  </span>
)}

제 생각에는 "현재 계정" 이 적절한 표현인 것 같아 그렇게 번역하고 저장하였습니다.

이처럼 실제 페이지에서 찾기 어려운 경우에 "Context" 기능은 더욱 도움이 되었습니다.

More from this blog

VitePress localSearchPlugin 버그 디버깅하기

어제는 Zenn이라는 일본 기술 블로그 서비스의 트렌드 글을 알려주는 봇을 계획하고 구현하려고 보고 있었습니다. ActivityPub 프로토콜을 대상으로 하는 봇이었기 때문에 BotKit을 살펴보았고 BotKit에서 제공하는 메소드가 무엇을 하는지 알기 위해 Fedify문서까지 찾아보게 되었습니다. 그러다 Fedify 문서에서 검색하는 데 검색 기능이 깨진 것이 보여서 이슈로 남겼고, VitePress에도 이슈로 남겨달라는 부탁(?)을 받아 이...

Jun 24, 20255 min read

3개월 리드를 맡으며 배운 점

이전 직장 생활 중 3개월 정도 리드를 맡아본 적이 있습니다. 특별히 제가 잘해서는 아니었고 정황상 제가 맡아야 했던 것으로 기억합니다. 지금 "소프트웨어 엔지니어 가이드북"을 읽고 있는데 생각이 나서 글로 적어보고자 키보드에 손을 얹었습니다. 지금은 일들을 겪은 후이기도 하고 사실 너무 당연하게 느껴지지만 그럼에도 짤막한 글로 남겨봅니다. 리드는 자원을 갖고 성과를 내는 역할입니다 이는 사실 IC여도 같은 것이지만 리드를 경험하기 전에는 크게...

Jun 19, 20252 min read

moreal

4 posts

의미있는 제품을 만드는 사람이 되고 싶습니다.