i18n.lock 잠금 파일

i18n.lock은 불필요한 재번역을 방지하고 Lingo.dev CLI 성능을 최적화하기 위해 콘텐츠 체크섬을 추적하는 잠금 파일입니다.

i18n.lock은 소스 콘텐츠와 번역 키의 체크섬을 저장하여 번역 실행 간에 변경된 사항을 식별합니다. 결과적으로 새로운 콘텐츠나 수정된 콘텐츠만 번역되어 처리 시간과 번역 비용이 절감됩니다.

잠금 파일 구조

i18n.lock은 콘텐츠 체크섬을 저장하기 위해 구조화된 YAML 형식을 사용합니다:

version: 1
checksums:
  a07974ea09011daa56f9df706530e442:
    key: f8692d39317193acf0e2e47172703c46
  b18975fb19122ebb67g0ef817641f553:
    key: g9703e40428204bdf1f3f58283814d57

구성 요소:

  • version — 마이그레이션 호환성을 위한 락파일 스키마 버전
  • checksums — 번역된 콘텐츠를 추적하는 콘텐츠 체크섬과 키 체크섬의 매핑
  • checksums.[content-hash] — 고유 식별자 역할을 하는 소스 콘텐츠의 SHA-256 해시
  • checksums.[content-hash].key — 키 이름 변경 감지를 가능하게 하는 번역 키의 SHA-256 해시

Lingo.dev CLI는 다른 키 체크섬을 가진 동일한 콘텐츠를 감지할 때 기존 번역을 보존합니다. 재번역이 발생하지 않으며, 키 구성 변경을 허용하면서도 번역 일관성을 유지합니다. 키 이름 변경에 대해 자세히 알아보세요.

워크플로우 통합

i18n.lock은 번역 워크플로우 중에 자동으로 작동합니다:

첫 번째 실행 — 초기 콘텐츠 체크섬으로 잠금 파일을 생성합니다:

npx lingo.dev@latest i18n

# 모든 소스 콘텐츠 체크섬으로 i18n.lock 생성

잠금 파일 재생성 — 잠금 파일을 처음부터 다시 생성합니다:

npx lingo.dev@latest lockfile --force

# 모든 소스 콘텐츠 체크섬으로 i18n.lock 재생성

팁: 병합 충돌 해결 중에 잠금 파일을 실제 상태로 안전하게 재설정하기 위해 이 명령을 사용할 수 있습니다.

후속 실행 — 변경된 콘텐츠만 처리합니다:

npx lingo.dev@latest i18n

# 현재 콘텐츠를 i18n.lock과 비교

# 새로운 콘텐츠나 수정된 콘텐츠만 번역

강제 재번역 — 락파일 최적화를 우회하고 모든 콘텐츠를 재번역하여 락파일을 재생성합니다:

npx lingo.dev@latest i18n --force

# i18n.lock을 무시하고 모든 콘텐츠를 재번역합니다

고정 검증 — 번역 완성도를 검증합니다:

npx lingo.dev@latest i18n --frozen

# 번역이 필요한 콘텐츠가 있으면 실패합니다

# CI/CD에서 번역 완성도를 확인하는 데 사용됩니다

버전 관리 통합

i18n.lock은 번역 파일과 함께 버전 관리 시스템에 커밋되어야 합니다.

이 락파일은 Lingo.dev CLI의 점진적 번역 시스템의 필수적인 부분으로, 모든 규모의 프로젝트에서 실용적으로 사용할 수 있게 합니다.