키 이름 변경

업데이트일: 지난 분기 · 1분 소요

지원 중단

이 문서는 레거시 CLI(v0)를 다룹니다. 현재 CLI는 v1입니다. 현재 CLI 문서 보기

Lingo.dev CLI는 번역 키 이름이 바뀌면 이를 감지하고 기존 번역을 자동으로 유지합니다. 키 이름만 달라지고 원본 콘텐츠가 그대로라면, CLI가 기존 번역을 새 키에 적용하므로 재번역은 일어나지 않습니다.

동작 방식#

CLI는 키 이름이 아니라 콘텐츠 지문을 비교합니다. 다른 키에서 동일한 지문이 발견되면, CLI는 이를 키 이름 변경으로 인식합니다.

json
// locales/en.json (before refactoring)
{
  "welcome_msg": "Welcome to our platform",
  "btn_save": "Save"
}

// locales/es.json (existing translations)
{
  "welcome_msg": "Bienvenido a nuestra plataforma",
  "btn_save": "Guardar"
}

소스 파일에서 키 이름을 변경한 뒤:

json
// locales/en.json (after refactoring)
{
  "homepage.welcome": "Welcome to our platform",
  "button.save": "Save"
}

npx lingo.dev@latest run를 실행하면 번역이 그대로 유지됩니다:

json
// locales/es.json (translations carried forward)
{
  "homepage.welcome": "Bienvenido a nuestra plataforma",
  "button.save": "Guardar"
}

감지 규칙#

다음 경우 키 이름 변경으로 감지됩니다:

  • 키 이름이 변경됨
  • 원본 콘텐츠가 동일하게 유지됨
  • 키가 동일한 버킷에 존재함

다음 경우에는 키 이름 변경으로 감지되지 않습니다:

  • 키와 콘텐츠가 동시에 변경됨(새 키로 처리됨)
  • 콘텐츠만 변경됨(콘텐츠 업데이트로 처리되어 재번역이 트리거됨)

대규모 리팩터링#

키 이름 변경 감지는 규모와 관계없이 동작합니다. 플랫 키 구조에서 중첩 네임스페이스로 바꾸는 것처럼 전체 키 구조를 재정리해도, CLI는 한 번의 실행으로 일치하는 모든 번역을 그대로 이어갑니다.

다음 단계#