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