번역 기여
WCPOS는 현재 10개 로케일의 번역을 제공하며, 더 많은 언어를 추가할 수 있습니다. 기여를 환영합니다 — 모든 내용을 번역할 필요는 없으며, 개발자가 아니어도 됩니다. 이 페이지에서는 무엇을 어디에서 번역하는지 안내합니다.
번역이 관리되는 네 곳
WCPOS의 번역 가능한 문자열은 네 개의 저장소에 분산되어 있으며, 각각 고유한 기여 절차가 있습니다. 어느 하나에만 독립적으로 기여할 수 있습니다.
WordPress 플러그인 (PHP 문자열)
관리자 알림, 설정 페이지 레이블, 오류 메시지 및 WP Admin UI. GlotPress를 사용하는 표준 WordPress 번역 절차를 따라 **translate.wordpress.org**에서 번역합니다. 코딩 지식이 필요 없습니다.
POS 앱 (React/i18next)
계산대에서 캐셔가 보는 모든 요소 — 버튼, 대화 상자, 오류 메시지, 장바구니 및 결제 UI. 번역 파일은 wcpos/monorepo 저장소에 있으며, 풀 리퀘스트를 통해 기여합니다. GitHub에 대한 기본적인 이해가 필요합니다.
WP Admin React 화면
새로운 React 기반 설정, 매장 편집기, 템플릿, 확장 기능 및 로그 페이지. 번역은 wcpos/woocommerce-pos(Pro 화면의 경우 woocommerce-pos-pro)에 JSON 파일로 관리됩니다. GitHub에 대한 기본적인 이해가 필요합니다.
이 문서 (Docusaurus)
지금 보고 계신 이 문서 사이트입니다. 번역된 MDX 파일은 wcpos/docs 저장소의 i18n/<locale>/에 있습니다. 기여는 풀 리퀘스트를 통해 제출합니다. Markdown을 알면 도움이 됩니다.
WordPress 플러그인 문자열 (가장 쉽게 시작할 수 있는 부분)
WordPress 플러그인을 번역해 본 적이 없다면, 이 방법이 가장 간단합니다:
- translate.wordpress.org/projects/wp-plugins/woocommerce-pos/에서 사용 언어를 찾습니다 — WordPress가 지원하는 모든 로캘에 하위 프로젝트가 있습니다.
- WordPress.org 계정으로 로그인합니다 (지원 포럼에서 댓글을 작성할 때 사용하는 계정과 동일). 계정이 없으면 무료로 생성할 수 있습니다.
- 하위 프로젝트를 선택합니다 — 일반적으로 다음과 같은 항목이 표시됩니다:
- Stable (최신 릴리스) — 현재 공개 버전에 포함된 문자열입니다. 여기서 번역하면 플러그인을 업데이트하는 모든 사이트에 반영됩니다.
- Development (trunk) — 다음 릴리스에 포함될 문자열입니다. 다음 버전 출시 전에 미리 번역해 둘 수 있습니다.
- Stable Readme / Development Readme — WordPress.org에 표시되는 플러그인 설명입니다.
- GlotPress UI를 통해 한 문자열씩 번역을 제출합니다. 제출된 번역은 프로젝트 번역 편집자(PTE)가 승인할 때까지 제안됨 상태로 표시됩니다.
- 번역이 몇 건 승인된 후 WordPress polyglots Slack에서 요청하여 PTE가 되세요. PTE는 검토를 기다리지 않고 직접 번역을 승인할 수 있습니다.
번역이 승인되면 해당 로케일의 모든 WCPOS 사용자에게 자동으로 배포됩니다 — 코드 변경이나 PR이 필요 없습니다.
POS 앱 번역 (React UI)
계산원용 UI는 v1.8.8에서 재구축된 React 앱으로, 번역에 i18next를 사용합니다. 번역 파일은 wcpos/monorepo 저장소(크로스 플랫폼 POS 코어)에 JSON으로 저장되어 있습니다.
이 구성에는 두 가지 유용한 기능이 있습니다:
- 온디맨드 로딩 — 런타임에 활성 로케일만 가져오므로(jsDelivr CDN에서) 언어를 추가해도 다른 사용자의 다운로드 용량이 증가하지 않습니다.
- 지역 대체 — i18next JSON 파일 이름은 밑줄을 사용합니다:
pt_BR은pt로,es_MX는es로 대체됩니다. 문서와 웹 언어 태그는pt-BR또는es-MX처럼 하이픈을 사용합니다. 번역 JSON 파일에는 밑줄 형식을, 언어 태그가 필요한 곳에는 하이픈 형식을 사용하세요.
기여하려면:
- en 소스 파일 찾기 —
wcpos/monorepo의 번역 패키지 디렉터리에서 찾을 수 있습니다(정확한 경로는 다를 수 있으며, 저장소에 이슈를 열어 복사할 파일을 문의하는 것이 가장 쉽습니다). - 복사
en.json을(를)<your-locale>.json으로 i18next JSON 로케일 규칙에 따라 (fr.json,de.json,pt_BR.json등, 지역별 파일명에는 밑줄을 사용합니다). - 값을 번역하되, 키와
{{interpolation}}플레이스홀더는 그대로 유지합니다. - 모노레포에 풀 리퀘스트를 제출합니다. CI가 JSON 구조를 검증합니다.
기존 번역의 간단한 수정은 GitHub에서 연필 아이콘을 클릭하여 JSON 파일을 직접 편집할 수 있습니다 — GitHub에서 자동으로 PR을 생성합니다.
WP Admin React 화면
WordPress 관리자 설정, 매장 편집기, 템플릿 페이지, 확장 프로그램 카탈로그, 로그는 모두 POS 앱과 동일한 번역 패턴을 사용하지만, 별도의 두 저장소에 위치합니다:
- 무료 관리자 화면 —
wcpos/woocommerce-pos저장소,packages/settings/src/translations/locales/<locale>/wp-admin-settings.json(다른 관리자 패키지에도 유사한 경로를 사용하며, 지역별 JSON 로케일에는pt_BR와 같은 밑줄 로케일 폴더를 사용합니다). - Pro 관리 화면 —
wcpos/woocommerce-pos-pro저장소, 동일한 패턴을 따릅니다(예:packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json; 지역별 JSON 로케일에는pt_BR와 같은 밑줄 로케일 폴더를 사용합니다).
기여 방법은 POS 앱과 동일합니다: en.json 을(를) <your-locale>.json에 복사하고 번역한 후 PR을 제출합니다.
문서 (현재 페이지)
문서 사이트는 Docusaurus의 표준 i18n 설정을 사용합니다. 번역된 MDX 파일은 wcpos/docs 리포지토리의 i18n/<locale>/docusaurus-plugin-content-docs/current/에 있습니다. versioned_docs/version-1.x/ 의 각 영어 페이지에는 활성화된 모든 번역 로케일에 대응하는 페이지가 있습니다.
사이트에는 이미 자동 번역 도구가 구비되어 있습니다. OpenAI / Anthropic API를 사용하여 영어 원문의 초안 번역을 생성하는 pnpm translate 스크립트가 있으며, 이후 사람이 검토하여 다듬습니다. 따라서 일반적인 기여 절차는 다음과 같습니다:
- 번역이나 개선이 필요한 페이지를 선택하세요. 사이트 하단의 언어 선택기에서 활성화된 언어를 확인할 수 있습니다.
- 해당 MDX 파일을 편집하세요
i18n/<locale>/...아래에서 모든 페이지 하단의 이 페이지 편집 링크를 통해 GitHub에서 직접 수정할 수 있습니다. - 풀 리퀘스트를 제출하세요. 리뷰어가 번역 정확성을 확인한 후 병합합니다.
대규모 기여(전체 섹션 번역이나 새 로케일 추가)의 경우, 먼저 이슈를 열어 팀과 조율하세요.
WCPOS에서 사용하는 로케일 코드
WCPOS는 현재 10개의 로케일을 지원합니다. 문서 표에서는 지역 로케일에 하이픈으로 연결된 언어 태그를 사용하지만, i18next JSON 파일에서는 pt_BR에는 pt-BR, zh_CN에는 zh-CN과 같이 동등한 밑줄 형식을 사용하세요.
| 코드 | 언어 |
|---|---|
ar | 아랍어 (오른쪽에서 왼쪽) |
de | 독일어 |
es | 스페인어 |
fr | 프랑스어 |
hi-IN | 힌디어 (인도) |
it | 이탈리아어 |
ja | 일본어 |
ko | 한국어 |
pt-BR | 포르투갈어 (브라질) |
zh-CN | 중국어 (간체) |
목록에 해당 언어가 없는 경우, 번역을 시작하려는 저장소에 이슈를 등록해 주시면 해당 로케일을 설정해 드리겠습니다.
번역자 참고 사항
- 플레이스홀더를 그대로 유지하세요. 문자열에는 종종
{{variable}},%s,%d또는<strong>태그 — 주변 텍스트는 번역하되 플레이스홀더는 그대로 유지하세요. WCPOS가 런타임에 실제 값으로 대체합니다. - 기존 어조에 맞추세요. WCPOS 문서와 UI는 실용적이고 직접적인 표현을 사용합니다. 영어 원문이 *"Add Coupon"*이라면, 번역은 해당 로케일에서 유사한 버튼에 사용하는 동사형이어야 합니다 — 명사형이 아닙니다.
- 가능하면 실제 환경에서 테스트하세요. WordPress 사이트를 해당 로케일로 설정하고 플러그인을 설치한 후, 실제 UI에서 문자열이 올바르게 표시되는지 확인하세요. 맥락이 중요합니다 — 한 화면에서 잘 맞는 문자열이 다른 화면에서는 어색하게 줄바꿈될 수 있습니다.
- 코드, URL, 기술 ID는 번역하지 마세요. 쿠폰 코드, 게이트웨이 ID, 로케일 코드, 파일 경로, 숏코드는 영어 그대로 유지합니다. 확실하지 않으면 번역하지 않는 것이 안전합니다 — 시스템이 의존하는 값을 손상시키는 것보다 낫습니다.
- 오른쪽에서 왼쪽(RTL) 언어 — 아랍어, 히브리어, 페르시아어, 우르두어 — 의 경우 영수증 템플릿도 RTL로 설정해야 합니다. WCPOS는 RTL 영수증 템플릿을 기본 제공합니다. 갤러리는 영수증 맞춤 설정을 참고하세요.
도움을 요청할 수 있는 곳
- WordPress.org polyglots Slack — Glotpress 관련 질문
- WCPOS Discord — WCPOS 관련 번역 논의 (초대 링크)
- GitHub 이슈 — 해당 리포지토리(
woocommerce-pos,woocommerce-pos-pro,monorepo, 또는docs)에 리포지토리별 질문을 등록하세요