콘텐츠로 이동

선택적 분석, 세션 기록 및 광고는 동의하지 않으면 비활성화됩니다. 이를 거부하고 Transglot을 사용할 수 있습니다. 쿠키 설정에서 언제든지 선택을 변경할 수 있습니다. 쿠키 정책

매일 병합하는 팀을 위한 솔루션

지속적 로컬라이제이션: 모든 병합 시 모든 언어 지원.

지속적 로컬라이제이션은 코드 변경과 동시에 새 문자열 및 변경된 문자열을 번역하여, 각 릴리스 전 별도의 단계에서 처리하는 방식과 차별화됩니다. 필요한 코드가 준비될 때마다 모든 언어가 즉시 출시 가능한 상태를 유지합니다.

두 가지 작업 방식의 시뮬레이션이며 실제 측정값이 아닙니다. 오른쪽 열을 읽으며 '변경 사항 병합' 버튼을 눌러보세요: 해당 언어 사용자가 보는 내용을 확인할 수 있습니다.
acme / web
mainAdd a gift cardcheckout.gift_card
frAjouter une carte cadeau번역됨
deGeschenkkarte hinzufügen번역됨
jaギフトカードを追加번역됨
arأضف بطاقة هدية번역됨
pt-BRAdicionar vale-presente번역됨
지금 출시 가능한 언어5개 중 5개
메인 대비 뒤처진 문자열없음
핵심 요약

지속적 로컬라이제이션이란?

지속적 로컬라이제이션은 새 문자열이나 변경된 문자열이 발생하면 자동으로 즉시 번역되고, 번역된 텍스트가 별도의 일정 조정 없이 제품에 바로 반영되는 작업 방식입니다.

번역은 중단되지 않기 때문에 별도의 번역 단계가 존재하지 않습니다. 개발자가 문자열을 병합하면 번역도 코드와 동일한 흐름으로 따라오며, 릴리스는 누구의 파일 대기 상태에 묶이지 않습니다.

이는 지속적 제공(Continuous Delivery)의 로컬라이제이션 측면입니다. 매일 병합하지만 몇 주마다 번역을 인수인계하는 팀은 매달 대부분의 기간 동안 코드가 언어보다 앞서 나갑니다. 지속적 로컬라이제이션은 이러한 격차를 한 번의 실행 길이만큼 줄여줍니다.

기계 번역 결과가 검토 없이 바로 적용된다는 의미는 아닙니다. 사람이 검토해야 할 문자열을 직접 선택할 수 있으며, 릴리스에는 검토가 완료된 항목만 포함됩니다.

지속적 vs 전통적 로컬라이제이션

차이점은 번역이 이루어지는 시점이며, 누가 수행하느냐가 아닙니다.

번역가, 검토자 및 용어집은 두 열 모두에 존재합니다. 차이가 있는 것은 작업이 시작되는 시점과 각 작업의 크기입니다.
나란히 보기
번역 시기
각 릴리스 전 단계에서
시작 조건
누군가 파일을 내보낼 때
각 작업의 크기
수주 분량의 문자열을 한 번에
릴리스 대기 사항
파일 반환 대기
마지막 순간의 복사본 변경
추가 왕복 작업
번역가의 작업 기준
문자열 스프레드시트
출시 시 지원 언어
단계별, 물결 모양으로 순차 진행
하나의 문자열, 시작부터 완료까지

연속 로컬라이제이션 작동 방식

새로운 문자열 하나가 루프를 통과하는 과정을 따라가 보세요. 각 단계에서 실제로 보게 될 내용을 확인할 수 있습니다.

터미널 또는 CI 로그
+ "checkout.gift_card": "Add a {brand} gift card"
$ git push origin main
$ transglot push --wait
push locales/en.json (en, json_nested)
Batch: #4182
$ transglot pull
written locales/fr.json
written locales/ja.json
checkout.gift_card
소스Add a {brand} gift card
frAjouter une carte cadeau {brand}용어집 초안
de{brand}-Geschenkkarte hinzufügen메모리에서, 0단어
ja{brand} ギフトカードを追加용어집 초안
arأضف بطاقة هدية {brand}용어집 초안
네 가지 관문, 한 번의 실행
플레이스홀더1개 수정됨
복수형통과
용어집 항목통과
소요 시간통과
ja · 자리 표시자 손실, 한 번 수정 후 재검사ギフトカードを追加{brand} ギフトカードを追加
cart.save
소스 변경됨Save Save draft
frEnregistrer사람이 검토함: 유지됨, 사용자에게 보고됨제안: Enregistrer le brouillon
deEntwurf speichern기계 번역 행: 다시 번역됨
풀 리퀘스트현장에서 업데이트됨
번역 업데이트transglot/sync → main열림, 리포지토리당 하나
locales/fr.json+3 −1
locales/de.json+3 −1
locales/ja.json+3 −1
또는 GitHub의 풀 리퀘스트에서 댓글 달기/translate

변경 사항은 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
새 문자열이 병합됨
기본적으로 번역됨
푸시가 실행을 시작합니다. 프로젝트 설정에서 이 기능을 끌 수 있습니다.
번역이 검사를 통과하지 못함
한 번 수정 후 거부됨
모든 실행의 모든 행에서 잘못된 플레이스홀더, 복수형 또는 금지된 용어에 대해 처리됩니다. 길이 초과 사항이 기록됩니다. ICU 프로젝트에서는 잘못된 행이 풀, 커넥터 및 CDN에서 제외됩니다.
사용자가 이미 행을 편집함
실행이 이를 작성하지 않음
메모리 일치 및 푸시도 마찬가지입니다. 나중에 소스가 변경되면 실행에서 해당 행을 보고합니다.
활발한 리포지토리의 풀 요청
하나의 브랜치, 하나의 풀 요청
각 푸시 시 제자리에서 업데이트됩니다.
요금제가 계산하는 항목
언어별로 한 번씩 번역된 단어
정확한 메모리 일치는 비용이 들지 않습니다. 문자열 저장에는 비용이 들지 않습니다.
AI 비용 지불 방식
플랜의 단어 수
별도 청구되지 않습니다.
동일한 작업: 10개 언어로 5,000개 문자열
월 $39
Team, 번역 포함
GitHub, GitLab, Bitbucket, Azure Repos, CLI 및 MCP 서버
모두 지원
Git 앱은 Team 플랜부터 시작되며 클라우드 버전을 지원합니다.
이미 사용 중인 도구 활용

문자열이 있는 곳 어디서든 시작하세요. 모든 경로는 동일한 파이프라인으로 연결됩니다.

문자열이 어떤 경로로 들어오든 동일한 메모리, 용어집, 게이트 및 검토 프로세스가 적용됩니다.
.github/workflows/translations.yml
on:
push:
branches: [main]
jobs:
translations:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v7
- uses: transglot/transglot-action@v1
with:
token: ${{ secrets.TRANSGLOT_TOKEN }}
먼저 해야 할 일

지속적인 현지화 설정 방법

  1. 코드에서 문자열 추출하기

    사용자에게 표시되는 모든 문자열은 로케일 파일에 안정적인 키를 가져야 합니다. Transglot은 20가지 형식을 지원하므로 기존 형식을 그대로 사용하시면 됩니다.

  2. 저장소 연결

    초기화 명령어는 로케일 파일을 찾아 브라우저를 통해 로그인하고, 기존 데이터를 업로드한 후 첫 번째 번역을 실행합니다.

  3. 모든 병합 시 실행하기

    GitHub Action을 추가하거나, 다른 CI에서 CLI를 호출하거나, GitHub, GitLab, Bitbucket 또는 Azure Repos용 앱을 설치하세요.

  4. 사람의 검토가 필요한 항목 결정하기

    풀 규칙에서 min_state를 reviewed로 설정하면 사람이 검토한 문자열만 해당 파일에 포함됩니다. 설정하지 않으면 초안 상태에서도 배포됩니다.

실제 숫자로 직접 계산해 보세요

매 병합 시 발생하는 비용: 변경된 단어입니다.

단어는 소스 단어로, 대상 언어별로 한 번씩 계산됩니다. 실행 규모는 변경된 내용을 기준으로 하므로, 5개 언어에서 12개의 단어가 변경된 병합은 프로젝트 크기와 관계없이 60개로 계산됩니다.

25
40
6
20,000
월간 단어 수26,000이 수치 기준 · 주간 25회 병합, 각각 40개 단어, 6개 언어

Starter 플랜 적용: $19/mo, 월 300,000단어.

허용량의 약 9%입니다.

첫 번째 실행(1회)120,000모든 언어의 기존 문자열입니다. 가져온 번역은 다시 번역되지 않습니다.

이는 번역 작업만 포함합니다. 품질 검사, 브랜드 톤 초안 및 수정도 단어로 계산되며, 메모리의 정확히 일치하는 항목은 비용이 발생하지 않습니다. CLI와 GitHub Action은 Starter 플랜부터 시작하며, GitHub, GitLab, Bitbucket 및 Azure Repos용 앱은 Team 플랜부터 시작합니다.

제공하지 않는 기능

지속적인 현지화로 해결되지 않는 세 가지 사항

코드에 여전히 남아 있는 문자열

파이프라인은 읽을 수 있는 내용만 번역할 수 있습니다. 하드코딩된 문자열과 부분적으로 결합된 문장은 먼저 수정해야 하며, 이는 일반적으로 출시 지연의 원인이 됩니다.

단어의 소유자 부재

자동화는 문자열을 이동시킬 뿐, 제품이 무엇을 어떻게 부를지 결정하지는 않습니다. 용어집을 관리하는 담당자가 없으면 아무도 읽지 않는 언어가 unnoticed 상태로 표류하게 됩니다.

판단이 필요한 카피

법적 텍스트, 가격 정책 및 브랜드 슬로건은 사람의 손길이 필요합니다. 이를 검토용으로 보내고, 승인자가 서명하기 전까지는 배포 파일에서 제외하세요.

지속적 로컬라이제이션 FAQ

팀들이 기능을 활성화하기 전에 묻는 질문들입니다.

지속적 로컬라이제이션이란 무엇인가요?
새로운 문자열이나 변경된 문자열이 발생할 때 자동으로 번역에 전송되고, 번역된 텍스트가 정해진 인수인계 절차 없이 제품에 바로 반영되는 작업 방식입니다. 이는 출시 전 번역 단계를 각 변경 사항 이후의 소규모 실행으로 대체합니다.
기존 로컬라이제이션은 문자열을 파일로 묶어 출시 직전에 외부로 보내고 기다립니다. 지속적 로컬라이제이션은 변경 사항이 발생할 때마다 개별적으로 처리하므로 작업 단위가 작고, 모든 언어가 동시에 출시되며, 늦게 변경된 카피도 전체 재전송이 아닌 단일 키의 재실행으로 해결됩니다.
아닙니다. CI/CD는 코드를 빌드, 테스트 및 배포합니다. 지속적 로컬라이제이션은 이와 병행하여 번역이 지속적으로 진행되도록 합니다. 두 프로세스는 파이프라인에서 만나며, 테스트를 실행하는 푸시(push) 동작이 번역용 문자열 전송과 파일 반환도 함께 수행할 수 있습니다.
필수는 아닙니다. GitHub, GitLab, Bitbucket 및 Azure Repos용 앱은 파이프라인 추가 없이 푸시에 반응하며, 콘텐츠 커넥터는 CMS 또는 스토어의 변경 사항에 반응합니다. 자체 워크플로우 내에서 사용하려면 CLI와 GitHub Action을 활용할 수 있습니다.
아닙니다. 초안을 바로 배포하거나, 사람이 검토한 내용만 파일별로 포함하도록 풀 규칙(pull rule)을 설정할 수 있습니다. 검토자는 편집기에서 각 행 옆에 표시된 용어집 항목, 메모리 매치 및 스크린샷을 참고하여 작업합니다.
아닙니다. 실행, 메모리 매치 및 푸시는 모두 해당 행을 먼저 확인하며, 사람이 편집하거나 검토한 행은 유지됩니다. 이후 소스가 변경되면 기존 텍스트는 그대로 유지되며, 실행 시 해당 행이 보고됩니다. Team 플랜 이상에서는 누군가 승인할 수 있는 제안 업데이트가 첨부됩니다.
인수인계 작업을 담당할 인력이 없는 소규모 팀일수록 그 효과가 큽니다. 한 가지 언어로만 출시하고 두 번째 언어 계획이 없다면 도입을 미룰 수도 있습니다.
실행 시작 전에 규모가 산정됩니다. 무료 플랜은 엄격한 상한선이 적용됩니다. 유료 플랜은 설정한 지출 한도에 도달하면 계량 초과 기능이 활성화되지 않는 한 허용량에서 중단됩니다. CI 환경에서는 실행이 한도를 초과할 경우 CLI가 코드 3으로 종료되어 파이프라인이 이에 대응할 수 있습니다.
네, GitLab.com, Bitbucket Cloud 및 Azure DevOps Services에서 지원됩니다. 자체 호스팅형 GitLab이나 Bitbucket Data Center는 앱으로 커버되지 않지만, Node 22가 설치되어 있고 API에 접근 가능한 모든 CI 환경에서는 CLI를 실행할 수 있습니다.
네. 콘텐츠 커넥터는 CMS, 스토어 또는 도움말 센터에서 데이터를 읽어오며, 양방향 커넥터는 검토된 언어를 다시 기록합니다. 일부는 가져오기만 가능하며, 각 커넥터 페이지에서 지원 범위를 확인할 수 있습니다.
네. 로케일을 CDN에 게시하면 제품이 런타임 SDK를 통해 실시간으로 번역 데이터를 읽어옵니다. 최신 URL은 60초간 캐시되며, 각 게시 버전은 고유한 URL을 유지하고 최근 20개 버전이 보관됩니다.
임포터는 Lokalise, Phrase, Crowdin, Transifex, Weblate and POEditor에서 프로젝트, 키 및 기존 번역을 가져옵니다. 가져온 번역은 사람 작업으로 간주되므로 실행 시 덮어쓰지 않습니다. 모든 요금제에서 무료로 제공되며 한 번만 실행됩니다.