키 이름 변경
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_msg→homepage.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 모델이나 프롬프트를 변경한 후 새로운 번역을 원할 때 유용합니다.
재번역에 대한 자세한 내용은 재번역을 참조하세요.