키 이름 변경

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

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

키 이름 변경 작동 방식

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

예시 시나리오:

// locales/en.json (리팩토링 전)
{
  "welcome_msg": "Welcome to our platform",
  "btn_save": "Save"
}

// locales/es.json (기존 번역)
{
  "welcome_msg": "Bienvenido a nuestra plataforma",
  "btn_save": "Guardar"
}

키 이름 리팩토링 후:

// locales/en.json (리팩토링 후)
{
  "homepage.welcome": "Welcome to our platform",
  "button.save": "Save"
}

npx lingo.dev@latest i18n 실행 시 기존 번역이 보존됩니다:

// locales/es.json (번역 보존됨)
{
  "homepage.welcome": "Bienvenido a nuestra plataforma",
  "button.save": "Guardar"
}

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

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

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

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

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

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

콘텐츠 변경:

// 변경 전
{
  "welcome": "Welcome to our app"
}

// 변경 후
{
  "welcome": "Welcome to our platform"
}

키와 콘텐츠 모두 변경:

// 변경 전
{
  "old_key": "Old content"
}

// 변경 후
{
  "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 i18n --force

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

재번역에 대한 자세한 정보는 재번역을 참조하세요.