키 이름 변경

Lingo.dev CLI는 번역 키의 이름을 변경할 때 자동으로 감지하여 기존 번역을 보존하므로, 키 식별자만 변경되었을 때 불필요한 재번역을 방지합니다.

코드를 리팩토링하고 더 나은 구성을 위해 키 이름을 변경할 때, CLI는 콘텐츠가 동일하다는 것을 인식하고 기존 번역을 새 키 이름에 적용합니다.

키 이름 변경 작동 방식

Lingo.dev CLI는 번역을 추적하기 위해 키 이름이 아닌 콘텐츠 지문을 비교합니다. 키 이름을 변경하지만 동일한 콘텐츠를 유지하면, CLI는 이 패턴을 감지하고 기존 번역을 보존합니다.

예시 시나리오:

// 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"
}

키 이름 리팩토링 후:

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

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

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

CLI는 콘텐츠가 동일하다는 것을 인식하고 기존 번역을 새 키 구조에 적용합니다.

키 이름 변경이 감지되는 경우

Lingo.dev CLI는 다음과 같은 경우 키 이름 변경을 감지합니다:

  • 키 이름이 변경됨 (welcome_msghomepage.welcome)
  • 원본 콘텐츠가 동일하게 유지됨 ("Welcome to our platform")
  • 키가 동일한 버킷 구성에 나타남

키 이름 변경이 감지되지 않는 경우

CLI는 다음과 같은 경우를 재번역이 필요한 새 콘텐츠로 처리합니다:

콘텐츠 변경:

// Before
{
  "welcome": "Welcome to our app"
}

// After
{
  "welcome": "Welcome to our platform"
}

키와 콘텐츠가 모두 변경:

// Before
{
  "old_key": "Old content"
}

// After
{
  "new_key": "New content"
}

대규모 키 리팩토링

키 이름 변경 감지는 대규모 리팩토링 작업에도 작동합니다. 전체 키 구조를 재구성할 수 있으며 CLI는 일치하는 모든 번역을 보존합니다.

리팩토링 전:

{
  "welcome_text": "Welcome",
  "save_btn": "Save",
  "cancel_btn": "Cancel",
  "error_network": "Network error"
}

네임스페이스로 리팩토링한 후:

{
  "homepage.welcome": "Welcome",
  "buttons.save": "Save",
  "buttons.cancel": "Cancel",
  "errors.network": "Network error"
}

콘텐츠 핑거프린트가 일치하므로 모든 번역이 보존됩니다.

강제 재번역

핑거프린트가 일치하더라도 콘텐츠를 재번역하려면 --force 플래그를 사용하세요:

npx lingo.dev@latest run --force

이 옵션은 키 이름 변경 감지를 우회하고 모든 콘텐츠를 재번역합니다. AI 모델이나 프롬프트를 변경한 후 새로운 번역을 원할 때 유용합니다.

재번역에 대한 자세한 내용은 재번역을 참조하세요.