Coroid는 자체 제품에 사용하는 동일한 엔진으로 귀사의 제품을 번역합니다. 총 13개 언어를 지원합니다. 카탈로그 파일은 그대로 저장소에 보관됩니다. 변경 사항이 발생하면 일반 작업 및 pull request 형태로 전달되며, 새로 추가되거나 수정되거나 오류가 있는 문자열만 모델로 전송됩니다.
번역 내용은 다음 경로에 저장됩니다:품질 관리 → 번역. 해당 목록에는 각 프로젝트 정보, 번역 설정 여부 및 최신 스캔 결과가 표시됩니다. 프로젝트를 열면 해당 워크벤치를 이용할 수 있습니다.
- 스토어프론트
- 문서 사이트
- 모바일 앱
| 로케일 | 누락됨 | 오래된 항목 |
|---|---|---|
| de | 0 | 2 |
| fr | 14 | 0 |
| ja | 14 | 1 |
| ar | 14 | 0 |
- 번역작업 QA 및 풀 리퀘스트 · 변경된 문자열만게시됨
- 번역 감사예약된 일정에 따라 · 모든 카탈로그 및 로케일 페이지마다초안
품질 관리 → 단일 프로젝트의 번역: 각 로케일별 최신 번역 검사 결과와 번역 및 번역 감사 제어 기능. 설명용 데이터입니다.
저장소에서 필요한 요건
Coroid는 다음 형식의 카탈로그를 지원합니다:
| 형식 | 사용 용도 |
|---|---|
| ICU JSON | ICU 복수형 및 선택 기능이 적용된 메시지 파일 |
| i18next JSON | 복수형 접미사를 포함한 i18next 및 react-i18next 카탈로그 |
| Vue i18n JSON | 링크된 메시지 및 파이프 복수형을 포함한 vue-i18n 메시지 |
| Rails YAML | config/locales/*.yml,%{name}보간 및 복수형 키를 지원합니다. |
| gettext PO | .po파일과.pot템플릿을 사용하며,Plural-Forms언어별로 구분됩니다. |
| Markdown 및 MDX | 언어 폴더 내에 저장된 문서 페이지(docs/en/…): 텍스트, 이미지 설명 및 지정된 프론트매터 필드가 번역 대상이며, 코드와 마크업은 원본 그대로 유지됩니다. |
| 사용자 정의 | 기타 모든 형식은 저장소 내의 작은 어댑터 명령을 통해 처리할 수 있습니다. |
아직 번역이 필요하지 않은 경우도 있습니다. 프로젝트에 i18n 설정이 없다면 Coroid가 해당 기능을 도입해 드립니다.
설정하기
해당설정탭에서는 세 단계를 안내합니다.
- **감지하기.**Coroid는 탐색 작업을 생성합니다. 지정된 번역 엔진을 저장소에서 실행하여 사용 중인 스택, 카탈로그, 소스 언어 및 불확실한 항목들을 기록합니다.
- 선택하기.다음 옵션 중 하나를 선택하세요:기존 i18n 적용기존 프레임워크와 카탈로그를 그대로 유지하면서 Coroid의 검증 기능과 델타 엔진을 추가합니다. 또는i18n 도입Coroid가 프레임워크를 구성하고 대표적인 문자열을 추출한 뒤, 현지화 라우팅, 폴백 기능 및 오른쪽에서 왼쪽으로 쓰는 언어 지원까지 추가합니다.
- **생성하기.**Coroid는 사양 및 수락 기준이 포함된 설정 작업을 생성합니다. 최종 결과물은 다른 작업과 마찬가지로 pull request 형태로 제공되어 리뷰를 거칩니다.
- 스토어프론트
- 문서 사이트
- 모바일 앱
- 감지
- 2선택
- 3생성
기존 프레임워크와 카탈로그를 그대로 유지하면서 Coroid의 번역 검사 기능과 델타 엔진을 추가합니다.
프레임워크를 연동하고 대표적인 문자열을 추출한 뒤, 로케일 라우팅, 폴백 및 RTL 동작을 설정합니다.
- 소스 로케일
- en
- 대상 로케일
- de, fr, ja, ar
감지 후 설정 탭: 기존 i18n을 활용하거나 새로 도입하며, 소스 및 대상 로케일을 지정합니다. 설명용 데이터입니다.
해당 pull request가 default 브랜치인 Coroid에 병합되면 설정이 완료됩니다. 그전까지는 워크벤치의 다른 기능들이 이 설정을 참조하지 않습니다.
저장소 파일
설정 과정에서.coroid/i18n.json파일이 생성됩니다. 이 파일은 저장소 구조를 기술하며 저장소 내에 보관되고
풀 요청을 통해 업데이트됩니다:
{
"version": 1,
"cli": { "version": "1.7.0", "sha256": "…" },
"sourceLocale": "en",
"targetLocales": ["de", "fr", "ja", "ar"],
"catalogs": [
{
"id": "ui",
"format": "i18next-json",
"source": "messages/{locale}.json"
}
],
"localeTier": { "ja": "escalation" }
}cli이 파일은 정확한 엔진 버전과 체크섬을 지정합니다. Coroid는 매 실행 전에 해당 버전을 다운로드하여 검증하므로, 업데이트로 인해 예상치 못한 출력 결과가 발생하지 않습니다.sourceLocale언어는 어떤 것이든 상관없습니다. 스웨덴어를 소스로 영어와 독일어로 번역하는 것도 가능합니다.localeTier는 특정 현지화 언어에 맞는 더 높은 수준의 번역 경로를 요청합니다. 사용자는 모델이 아닌 특정 등급을 직접 선택합니다.
이 파일에는 용어집, 보호 대상 용어, 제품 컨텍스트 및 현지화별 지침도 포함될 수 있습니다.
변경하려면설정탭에서변경 제안. Coroid는 해당 파일을 적용하고 변경으로 영향을 받은 번역을 수정하는 작업을 생성합니다.
같은 탭에서는 저장소가 아닌 Coroid와 관련된 설정을 지정할 수 있습니다: 제안 선택기를 사용할 수 있는 사이트, 제안의 기본 리뷰 여부, 프로젝트의 번역 비용 한도 등입니다.
모든 변경 사항을 확인하세요
번역 내용은 두 가지 품질 관리 절차를 통해 검증됩니다.개요탭에서 추가할 수 있습니다.
- 번역은 작업 QA와 풀 요청 과정에서 실행됩니다. 변경된 문자열만 대상으로 검사합니다.
- 번역 감사는 정기적으로 실행됩니다. 모든 카탈로그와 현지화 언어를 대상으로 검사하며, 현지화된 페이지의 오른쪽에서 왼쪽으로 쓰는 레이아웃, 오버플로우, 미번역 텍스트 여부 등을 브라우저 테스트로 확인할 수도 있습니다.
제어 규칙을 추가하면 정책 초안이 생성됩니다. 해당 초안을 검토한 뒤품질 정책에서 활성화하세요.
각 문제는 고유한 이슈 코드가 있는 발견 사항으로 처리됩니다:
| 코드 | 의미 | 기본적으로 차단 |
|---|---|---|
missing | 해당 문자열에 번역이 없습니다. | 예 |
invalid_syntax | 번역 내용이 올바르게 파싱되지 않습니다. 예를 들어 ICU 형식이 잘못된 경우입니다. | 예 |
placeholder_mismatch | 플레이스홀더가 소스와 일치하지 않습니다. | 예 |
plural_categories | 해당 로케일에 필요한 복수형이 누락되었습니다 | 예 |
stale | 문자열이 번역된 이후에 원본이 변경되었습니다 | 아니요 |
제어판 설정에서 어떤 코드를 차단할지 직접 선택할 수 있습니다. 용어집, 길이 및 금지어 규칙은 파일에 해당 설정이 포함된 경우 각각의 코드를 별도로 보고합니다.
missingui · checkout.total · fr번역되지 않음staleui · nav.deals · de번역 이후 소스가 변경됨placeholder_mismatchui · cart.items · ja플레이스홀더가 소스와 일치하지 않음plural_categoriesui · cart.count · ar해당 로케일에 대한 복수형 처리가 누락됨
번역 검사에서 발견된 품질 문제로, 각 문제당 하나의 코드가 할당됩니다. 설명용 데이터입니다.
번역 오류로 인해 작업이 중단될 경우, 개발자 에이전트는 매번 동일한 방식으로 문제를 해결합니다. 즉, 해당 작업에 대한 번역 세션을 시작하고 변경된 문자열에 대해 엔진을 실행하는 것입니다. 대상 카탈로그를 수동으로 편집하지는 않습니다.
번역기 모델
번역은 AI 프로필 내에서 고유한 역할을 가집니다,번역기, 아키텍트, 개발자, QA 및 리뷰 담당자 옆에 위치합니다. 기본적으로 이 역할은 Hy-MT2라는 번역 모델을 사용하며, 조직 정책에서 허용하는 경우 GPT-6 Luna를 대체 모델로 활용합니다. 다른 역할과 마찬가지로 AI 프로필에서 해당 매핑을 변경할 수 있습니다.
엔진은 또한 문자열을 크기에 따라 묶고, 모든 응답을 플레이스홀더 및 복수형 규칙과 비교하여 유효성을 검사한 뒤, 오류가 발생한 문자열에 대해 재시도하거나 상위 단계로 전달합니다.
비용
모든 요금제에서 번역 기능을 이용할 수 있습니다. 번역 요청은 Coroid의 번역 게이트웨이를 통해 처리되며, 에이전트 실행과 동일하게 조직의 모델 사용량으로 청구됩니다. 설정 작업도 다른 작업과 마찬가지로 요금제에서 정한 에이전트 시간에 포함됩니다.
기본 번역기 경로를 사용할 경우, 1,000개 문자열당 언어별 번역 비용은 약 2센트입니다. 2,000개 문자열로 구성된 카탈로그를 10개 언어로 번역하는 데 드는 비용은 약 0.33달러로 측정되었습니다.
- 변경된 내용만 비용이 발생합니다.엔진은 소스 텍스트를 기준으로 캐시를 유지하므로, 변경되지 않은 문자열은 다시 전송되지 않습니다.
- 각 작업에는 번역 제한이 적용됩니다.세션은 작업의 지출 한도에 도달하면 중단되며, 기본 한도는 1달러입니다. 프로젝트별로 더 낮은 한도를 설정할 수 있습니다. 설정 → 접근 권한 및 지출.
- 검사는 모델 호출을 수행하지 않습니다.번역 제어판과 감사 기능은 카탈로그를 읽기만 할 뿐 번역을 수행하지 않습니다.
Coroid 외부에서의 번역
엔진은 명령줄 도구이며,coroid-i18n. 자체 CI 환경에서도 동일한 고정 버전을 본인의 OpenRouter 키와 함께 실행할 수 있습니다. Coroid 내에서는 작업이 항상 번역 게이트웨이를 통해 처리되므로 지출 및 한도가 한곳에서 관리됩니다.