지속적 로컬라이제이션: 모든 병합 시 모든 언어 지원.
지속적 로컬라이제이션은 코드 변경과 동시에 새 문자열 및 변경된 문자열을 번역하여, 각 릴리스 전 별도의 단계에서 처리하는 방식과 차별화됩니다. 필요한 코드가 준비될 때마다 모든 언어가 즉시 출시 가능한 상태를 유지합니다.
지속적 로컬라이제이션이란?
지속적 로컬라이제이션은 새 문자열이나 변경된 문자열이 발생하면 자동으로 즉시 번역되고, 번역된 텍스트가 별도의 일정 조정 없이 제품에 바로 반영되는 작업 방식입니다.
번역은 중단되지 않기 때문에 별도의 번역 단계가 존재하지 않습니다. 개발자가 문자열을 병합하면 번역도 코드와 동일한 흐름으로 따라오며, 릴리스는 누구의 파일 대기 상태에 묶이지 않습니다.
이는 지속적 제공(Continuous Delivery)의 로컬라이제이션 측면입니다. 매일 병합하지만 몇 주마다 번역을 인수인계하는 팀은 매달 대부분의 기간 동안 코드가 언어보다 앞서 나갑니다. 지속적 로컬라이제이션은 이러한 격차를 한 번의 실행 길이만큼 줄여줍니다.
기계 번역 결과가 검토 없이 바로 적용된다는 의미는 아닙니다. 사람이 검토해야 할 문자열을 직접 선택할 수 있으며, 릴리스에는 검토가 완료된 항목만 포함됩니다.
차이점은 번역이 이루어지는 시점이며, 누가 수행하느냐가 아닙니다.
| 변경 사항 | 일괄 인계 | 연속적 |
|---|---|---|
| 나란히 보기 | ||
| 번역 시기 | 각 릴리스 전 단계에서 | 문자열이 변경될 때마다 |
| 시작 조건 | 누군가 파일을 내보낼 때 | 푸시, 병합 또는 콘텐츠 변경 시 |
| 각 작업의 크기 | 수주 분량의 문자열을 한 번에 | 한 번의 변경에 포함된 문자열 |
| 릴리스 대기 사항 | 파일 반환 대기 | 지정한 문자열에 대한 검토 |
| 마지막 순간의 복사본 변경 | 추가 왕복 작업 | 해당 키에 대한 재실행 |
| 번역가의 작업 기준 | 문자열 스프레드시트 | 용어집 항목, 메모리 일치 항목 및 스크린샷이 포함된 행 |
| 출시 시 지원 언어 | 단계별, 물결 모양으로 순차 진행 | 기능과 함께 동시에 |
- 번역 시기
- 각 릴리스 전 단계에서
- 시작 조건
- 누군가 파일을 내보낼 때
- 각 작업의 크기
- 수주 분량의 문자열을 한 번에
- 릴리스 대기 사항
- 파일 반환 대기
- 마지막 순간의 복사본 변경
- 추가 왕복 작업
- 번역가의 작업 기준
- 문자열 스프레드시트
- 출시 시 지원 언어
- 단계별, 물결 모양으로 순차 진행
- 번역 시기
- 문자열이 변경될 때마다
- 시작 조건
- 푸시, 병합 또는 콘텐츠 변경 시
- 각 작업의 크기
- 한 번의 변경에 포함된 문자열
- 릴리스 대기 사항
- 지정한 문자열에 대한 검토
- 마지막 순간의 복사본 변경
- 해당 키에 대한 재실행
- 번역가의 작업 기준
- 용어집 항목, 메모리 일치 항목 및 스크린샷이 포함된 행
- 출시 시 지원 언어
- 기능과 함께 동시에
연속 로컬라이제이션 작동 방식
새로운 문자열 하나가 루프를 통과하는 과정을 따라가 보세요. 각 단계에서 실제로 보게 될 내용을 확인할 수 있습니다.
변경 사항은 CLI, GitHub Action 또는 Git 호스트의 앱을 통해 Transglot에 도달합니다. 소스 파일은 20가지 기본 형식 중 하나로 파싱되며, 각 문자열은 프로젝트에 이미 저장된 내용과 비교됩니다. 새롭거나 변경된 문자열만 다음 단계로 진행합니다.
번역 메모리의 완전 일치 항목이 행을 채우며 단어 비용이 발생하지 않습니다. 나머지 내용은 용어집, 스타일 가이드 및 해당 키의 컨텍스트와 함께 Glossa로 전송됩니다.
각 실행의 모든 행에서 자리 표시자, 복수형, 용어집 항목 및 길이가 검사됩니다. 잘못된 자리 표시자, 누락된 복수형 또는 금지된 용어집 항목은 한 번 수정 후 다시 검사되며, 두 번째에도 실패하면 거부되어 배포되지 않습니다. 길이만 초과한 행은 작성되며, 팀 플랜에서는 자동 승인이나 QA 실행을 통해 검토를 위해 플래그가 지정됩니다.
실행은 사람이 편집하거나 검토한 행을 절대 덮어쓰지 않습니다. 이후 소스가 변경되더라도 텍스트는 유지되며, 실행은 해당 행을 카운트하고 사용자에게 알립니다. 팀 플랜에서는 누군가가 수락할 수 있는 제안된 업데이트가 옆에 표시됩니다.
Git 앱은 로케일 파일을 하나의 동기화 브랜치에 커밋하고 하나의 풀 리퀘스트를 최신 상태로 유지합니다. GitHub에서는 풀 리퀘스트에 /translate라고 댓글을 달면 파일이 해당 풀 리퀘스트의 자체 브랜치에 저장됩니다. 또는 CDN에 게시하면 릴리스 없이도 실행 중인 제품이 변경 사항을 즉시 읽습니다.
지속적 지역화가 잘못되는 여섯 가지 방법과 각각을 막는 방법
실행이 사람의 작업을 덮어씀
모든 작성자는 행의 상태(실행, 메모리 일치 및 푸시)를 먼저 확인합니다. 사람이 편집하거나 검토한 행은 유지되며 실행에서 이를 보고합니다.
→fr, 검토됨, 소스 최근 변경
✓유지됨, 카운트됨, 보고됨
손상된 문자열이 프로덕션에 도달합니다
들어간 모든 토큰은 다시 나와야 합니다. ICU 프로젝트에서는 렌더링 시 오류를 발생시키는 메시지가 풀, 커넥터 및 CDN 번들에서 제외되며, 실행 과정에서 해당 항목의 이름이 지정됩니다.
→{count, plural, one {# article}
✓파일에서 제외되고 실행 중 이름 지정됨
저장소에 봇 풀 리퀘스트가 가득 찹니다
저장소당 하나의 동기화 브랜치와 하나의 풀 리퀘스트만 사용됩니다. 두 번째 풀 리퀘스트를 열지 않고, 두 개의 빠른 푸시가 이 브랜치로 수렴됩니다.
→#812 #815 #819 #823 로컬라이제이션 업데이트
✓#812 transglot/sync, 제자리에서 업데이트됨
소스 편집으로 인해 기존 번역이 뒤처집니다
모든 대상 행은 작성 당시의 소스를 기록하므로, 변경된 문자열은 모든 언어에서 동시에 outdated 상태로 식별되며 해당 키만 다시 실행됩니다.
→저장이 저장 초안으로 변경되었습니다. fr, de, ja는 여전히 저장이라고 표시됨
✓fr, de, ja가 해당 키 하나에 대해 다시 실행됨
매번 실행할 때마다 전체 프로젝트 비용이 다시 청구됩니다
A run is sized from what changed. An unchanged string is not sent, an exact memory match costs no words, and a row a person owns is refused before anything is spent.
→파일에 48,000단어 포함
✓이번 실행: 60단어
미완료된 풀이 로케일 파일을 삭제합니다
서버가 특정 로케일에 대한 엔트리가 없다고 보고하면, 콘텐츠가 있는 파일을 덮어쓰는 것을 거부하고 파이프라인을 중단하기 위해 exit 1로 종료합니다.
→풀: ja용 엔트리 0개, 파일에 1,204개 보유
✓빈 번들로 locales/ja.json을 덮어쓰는 것 거부
- run 4182 fr: 초안에서 누락된 플레이스홀더, 재시도 시 복구됨
- run 4182 de: 사용자가 소유한 3개 행 유지됨
- run 4182 ja: 메모리에서 가져온 41개 행, 0단어
- run 4183 ar: 재시도 후 복수형 누락, 행 거부됨
- pull locales/pt-BR.json 작성됨
- sync transglot/sync 업데이트됨, 풀 리퀘스트 #812
세 가지 모두 저장소에 연결됩니다. 차이점은 병합 시 발생하는 일입니다.
2026년 11월 5일 각 회사의 자체 페이지에서 읽은 내용입니다. 가격 행은 아래 링크된 비교 페이지에서 가져왔으며, 여기에는 요금제와 계산 방식이 표시됩니다. 가격과 요금제는 변경될 수 있으므로 결정 전에 확인하십시오.
| 작동 방식 | Transglot | Lokalise | Crowdin |
|---|---|---|---|
| 새 문자열이 병합됨 | 기본적으로 번역됨 푸시가 실행을 시작합니다. 프로젝트 설정에서 이 기능을 끌 수 있습니다. | 설정 완료 후 번역됨 키 생성 및 파일 가져오기 시 자동화는 기본적으로 비활성화됩니다. AI 단계가 포함된 워크플로우는 자체 일정에 따라 실행됩니다. | 활성화 시 번역됨 설정 > 자동 번역에서 각 업로드 시 실행됩니다. Git 동기화는 기본적으로 시간당 한 번 실행됩니다. |
| 번역이 검사를 통과하지 못함 | 한 번 수정 후 거부됨 모든 실행의 모든 행에서 잘못된 플레이스홀더, 복수형 또는 금지된 용어에 대해 처리됩니다. 길이 초과 사항이 기록됩니다. ICU 프로젝트에서는 잘못된 행이 풀, 커넥터 및 CDN에서 제외됩니다. | 오류 수준 검사가 편집기에서의 저장을 차단함 각 검사는 끄기, 경고 또는 오류로 설정됩니다. | 오류 수준 검사가 저장을 차단함 각 검사는 경고 또는 오류로 설정됩니다. |
| 사용자가 이미 행을 편집함 | 실행이 이를 작성하지 않음 메모리 일치 및 푸시도 마찬가지입니다. 나중에 소스가 변경되면 실행에서 해당 행을 보고합니다. | 자동화는 기본적으로 빈 값을 채움 강제 옵션과 지우기 동작은 채워진 값을 덮어씁니다. | 옵션이 사람에 의해 편집되거나 승인된 행을 유지함 전체 교체 옵션도 존재합니다. |
| 활발한 리포지토리의 풀 요청 | 하나의 브랜치, 하나의 풀 요청 각 푸시 시 제자리에서 업데이트됩니다. | 각 풀 요청마다 새 브랜치 생성 타임스탬프로 이름이 지정됩니다. | 시간당 동기화되는 서비스 브랜치 시간당이 기본값이며 간격을 변경할 수 있습니다. |
| 요금제가 계산하는 항목 | 언어별로 한 번씩 번역된 단어 정확한 메모리 일치는 비용이 들지 않습니다. 문자열 저장에는 비용이 들지 않습니다. | 처리된 단어 수 기본 언어와 대상 언어가 모두 포함됩니다. | 호스팅된 단어 수 번역할 단어 수 × 대상 언어 수 |
| AI 비용 지불 방식 | 플랜의 단어 수 별도 청구되지 않습니다. | 플랜별 AI 단어 할당량 Standard AI 및 Pro AI 단어는 별도의 플랜 항목으로 제공됩니다. | 별도 크레딧 또는 자체 API 키 사용 Crowdin의 관리형 AI는 구독 외 별도 크레딧으로 결제됩니다. |
| 동일한 작업: 10개 언어로 5,000개 문자열 | 월 $39 Team, 번역 포함 | 월 $1,049 Advanced (billed yearly) | 월 $138 Pro with 560K hosted words (billed monthly), AI 추가 요금 |
| GitHub, GitLab, Bitbucket, Azure Repos, CLI 및 MCP 서버 | 모두 지원 Git 앱은 Team 플랜부터 시작되며 클라우드 버전을 지원합니다. | 모두 지원 모든 플랜에서 통합 기능을 제공합니다. | 모두 지원 Bitbucket Server도 지원합니다. |
- 새 문자열이 병합됨
- 기본적으로 번역됨푸시가 실행을 시작합니다. 프로젝트 설정에서 이 기능을 끌 수 있습니다.
- 번역이 검사를 통과하지 못함
- 한 번 수정 후 거부됨모든 실행의 모든 행에서 잘못된 플레이스홀더, 복수형 또는 금지된 용어에 대해 처리됩니다. 길이 초과 사항이 기록됩니다. ICU 프로젝트에서는 잘못된 행이 풀, 커넥터 및 CDN에서 제외됩니다.
- 사용자가 이미 행을 편집함
- 실행이 이를 작성하지 않음메모리 일치 및 푸시도 마찬가지입니다. 나중에 소스가 변경되면 실행에서 해당 행을 보고합니다.
- 활발한 리포지토리의 풀 요청
- 하나의 브랜치, 하나의 풀 요청각 푸시 시 제자리에서 업데이트됩니다.
- 요금제가 계산하는 항목
- 언어별로 한 번씩 번역된 단어정확한 메모리 일치는 비용이 들지 않습니다. 문자열 저장에는 비용이 들지 않습니다.
- AI 비용 지불 방식
- 플랜의 단어 수별도 청구되지 않습니다.
- 동일한 작업: 10개 언어로 5,000개 문자열
- 월 $39Team, 번역 포함
- GitHub, GitLab, Bitbucket, Azure Repos, CLI 및 MCP 서버
- 모두 지원Git 앱은 Team 플랜부터 시작되며 클라우드 버전을 지원합니다.
- 새 문자열이 병합됨
- 설정 완료 후 번역됨키 생성 및 파일 가져오기 시 자동화는 기본적으로 비활성화됩니다. AI 단계가 포함된 워크플로우는 자체 일정에 따라 실행됩니다.
- 번역이 검사를 통과하지 못함
- 오류 수준 검사가 편집기에서의 저장을 차단함각 검사는 끄기, 경고 또는 오류로 설정됩니다.
- 사용자가 이미 행을 편집함
- 자동화는 기본적으로 빈 값을 채움강제 옵션과 지우기 동작은 채워진 값을 덮어씁니다.
- 활발한 리포지토리의 풀 요청
- 각 풀 요청마다 새 브랜치 생성타임스탬프로 이름이 지정됩니다.
- 요금제가 계산하는 항목
- 처리된 단어 수기본 언어와 대상 언어가 모두 포함됩니다.
- AI 비용 지불 방식
- 플랜별 AI 단어 할당량Standard AI 및 Pro AI 단어는 별도의 플랜 항목으로 제공됩니다.
- 동일한 작업: 10개 언어로 5,000개 문자열
- 월 $1,049Advanced (billed yearly)
- GitHub, GitLab, Bitbucket, Azure Repos, CLI 및 MCP 서버
- 모두 지원모든 플랜에서 통합 기능을 제공합니다.
- 새 문자열이 병합됨
- 활성화 시 번역됨설정 > 자동 번역에서 각 업로드 시 실행됩니다. Git 동기화는 기본적으로 시간당 한 번 실행됩니다.
- 번역이 검사를 통과하지 못함
- 오류 수준 검사가 저장을 차단함각 검사는 경고 또는 오류로 설정됩니다.
- 사용자가 이미 행을 편집함
- 옵션이 사람에 의해 편집되거나 승인된 행을 유지함전체 교체 옵션도 존재합니다.
- 활발한 리포지토리의 풀 요청
- 시간당 동기화되는 서비스 브랜치시간당이 기본값이며 간격을 변경할 수 있습니다.
- 요금제가 계산하는 항목
- 호스팅된 단어 수번역할 단어 수 × 대상 언어 수
- AI 비용 지불 방식
- 별도 크레딧 또는 자체 API 키 사용Crowdin의 관리형 AI는 구독 외 별도 크레딧으로 결제됩니다.
- 동일한 작업: 10개 언어로 5,000개 문자열
- 월 $138Pro with 560K hosted words (billed monthly), AI 추가 요금
- GitHub, GitLab, Bitbucket, Azure Repos, CLI 및 MCP 서버
- 모두 지원Bitbucket Server도 지원합니다.
문자열이 있는 곳 어디서든 시작하세요. 모든 경로는 동일한 파이프라인으로 연결됩니다.
지속적인 현지화 설정 방법
- 01
코드에서 문자열 추출하기
사용자에게 표시되는 모든 문자열은 로케일 파일에 안정적인 키를 가져야 합니다. Transglot은 20가지 형식을 지원하므로 기존 형식을 그대로 사용하시면 됩니다.
jsonyamlxliffarb - 02
저장소 연결
초기화 명령어는 로케일 파일을 찾아 브라우저를 통해 로그인하고, 기존 데이터를 업로드한 후 첫 번째 번역을 실행합니다.
npx transglot@latest init - 03
모든 병합 시 실행하기
GitHub Action을 추가하거나, 다른 CI에서 CLI를 호출하거나, GitHub, GitLab, Bitbucket 또는 Azure Repos용 앱을 설치하세요.
transglot push --wait - 04
사람의 검토가 필요한 항목 결정하기
풀 규칙에서 min_state를 reviewed로 설정하면 사람이 검토한 문자열만 해당 파일에 포함됩니다. 설정하지 않으면 초안 상태에서도 배포됩니다.
min_state: reviewed
매 병합 시 발생하는 비용: 변경된 단어입니다.
단어는 소스 단어로, 대상 언어별로 한 번씩 계산됩니다. 실행 규모는 변경된 내용을 기준으로 하므로, 5개 언어에서 12개의 단어가 변경된 병합은 프로젝트 크기와 관계없이 60개로 계산됩니다.
Starter 플랜 적용: $19/mo, 월 300,000단어.
허용량의 약 9%입니다.
이는 번역 작업만 포함합니다. 품질 검사, 브랜드 톤 초안 및 수정도 단어로 계산되며, 메모리의 정확히 일치하는 항목은 비용이 발생하지 않습니다. CLI와 GitHub Action은 Starter 플랜부터 시작하며, GitHub, GitLab, Bitbucket 및 Azure Repos용 앱은 Team 플랜부터 시작합니다.
지속적인 현지화로 해결되지 않는 세 가지 사항
코드에 여전히 남아 있는 문자열
파이프라인은 읽을 수 있는 내용만 번역할 수 있습니다. 하드코딩된 문자열과 부분적으로 결합된 문장은 먼저 수정해야 하며, 이는 일반적으로 출시 지연의 원인이 됩니다.
단어의 소유자 부재
자동화는 문자열을 이동시킬 뿐, 제품이 무엇을 어떻게 부를지 결정하지는 않습니다. 용어집을 관리하는 담당자가 없으면 아무도 읽지 않는 언어가 unnoticed 상태로 표류하게 됩니다.
판단이 필요한 카피
법적 텍스트, 가격 정책 및 브랜드 슬로건은 사람의 손길이 필요합니다. 이를 검토용으로 보내고, 승인자가 서명하기 전까지는 배포 파일에서 제외하세요.
지속적 로컬라이제이션 FAQ
팀들이 기능을 활성화하기 전에 묻는 질문들입니다.