|
문서
데모 예약플랫폼
플랫폼MCPCLIAPI워크플로
가이드변경 로그

지속적 로컬라이제이션

  • 작동 방식
  • 설정

플랫폼

  • GitHub App
  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines
  • 고급 패턴

고급 패턴

CI/CD 로컬라이제이션을 위한 고급 패턴을 소개합니다. 워크플로 선택부터 번역 완성도 확인, 병합 충돌 해결까지 다룹니다.

워크플로 선택하기#

대부분의 팀 운영 방식은 네 가지 워크플로 패턴으로 커버할 수 있습니다. 각 패턴마다 자동화 수준, 검토 부담, 브랜치 관리 측면에서 트레이드오프가 다릅니다.

워크플로적합한 경우트레이드오프
main에 커밋소규모 팀, 마찰 없는 업데이트번역 검토 단계가 없음
main에서 PR 생성번역을 검토하고 싶은 팀PR을 수동으로 승인해야 함
기능 브랜치에 커밋장기간 유지되는 기능 브랜치번역 커밋이 브랜치 히스토리에 남음
기능 브랜치에서 PR 생성기능별로 최대한 세밀하게 제어해야 하는 경우기능마다 여러 PR을 관리해야 함

어떤 방식을 선택할지 확신이 없다면 "main에 커밋"부터 시작하세요. 가장 단순한 워크플로이며, 브랜치가 갈라지지 않기 때문에 병합 충돌도 원천적으로 막을 수 있습니다.

번역 완성도 확인하기#

--frozen 플래그는 새 번역을 생성하지 않고 모든 콘텐츠가 번역되었는지 확인합니다. 누락된 콘텐츠가 하나라도 있으면 0이 아닌 상태 코드로 종료합니다:

bash
npx lingo.dev@latest run --frozen

번역되지 않은 콘텐츠가 배포되지 않도록 배포 게이트로 활용하세요.

yaml
name: Check translations
on: [push, pull_request]
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npx lingo.dev@latest run --frozen

병합 충돌 해결하기#

병합 충돌은 브랜치 간 i18n.lock 파일 내용이 달라질 때 발생합니다. 보통 서로 다른 브랜치에서 번역이 각각 업데이트될 때 이런 상황이 생깁니다.

예방#

번역에 기능 브랜치를 쓰는 대신 번역을 main에 직접 커밋하면 lockfile 충돌을 완전히 없앨 수 있습니다.

merge로 해결하기#

1

merge 시작하기

bash
git merge <branch-name>
2

충돌한 lockfile 삭제하기

bash
rm i18n.lock
3

merge 완료하기

bash
git add .
git merge --continue
4

lockfile 다시 생성하기

bash
npx lingo.dev@latest lockfile --force

이렇게 하면 새 번역을 트리거하지 않고 현재 소스 파일 상태를 기준으로 lockfile을 다시 생성합니다.

rebase로 해결하기#

rebase에서도 같은 방식으로 해결할 수 있습니다. 충돌이 날 때마다 i18n.lock을 삭제하고 rebase를 계속 진행한 뒤, 마지막에 lockfile을 다시 생성하세요:

bash
git rebase <branch-name>
# On each conflict: rm i18n.lock && git add . && git rebase --continue
npx lingo.dev@latest lockfile --force

다음 단계#

GitHub Actions
공식 GitHub Action 설정하기
i18n.lock
lockfile이 번역 상태를 추적하는 방식
작동 방식
CI/CD 로컬라이제이션 파이프라인
설정
프로젝트에 맞게 CI/CD 설정하기

이 페이지가 도움이 되었나요?

Max PrilutskiyMax Prilutskiy·업데이트됨 4개월 전·2 min read