Lingo.dev CLI는 개별 번역 키가 처리 과정에서 어떻게 동작할지 결정하는 4가지 키 단위 제어 기능을 제공합니다. 각 기능은 서로 다른 용도로 쓰입니다:
| 제어 기능 | 설정 필드 | 동작 |
|---|---|---|
| 키 잠금 | lockedKeys | 번역 없이 소스 값을 모든 대상에 그대로 복사합니다. 대상 파일에는 동일한 값으로 키가 추가됩니다. |
| 키 무시 | ignoredKeys | 키를 처리 대상에서 완전히 제외합니다. 대상 파일에는 포함되지 않습니다. |
| 키 보존 | preservedKeys | 키를 소스 기준으로 한 번만 초기화한 뒤 자동 업데이트되지 않도록 보호합니다. 수동 번역이 필요한 콘텐츠에 맞춰 설계되었습니다. |
| 키 이름 변경 | 자동 | 키 이름이 바뀌면 이를 감지해 기존 번역을 그대로 유지합니다. 별도 설정은 필요하지 않습니다. |
상황별 사용 가이드#
값이 모든 언어에서 완전히 동일해야 한다면 해당 키를 잠금하세요. 예: 브랜드명, 기술 식별자, 구성 값:
json
{ "lockedKeys": ["brand/name", "config/apiUrl"] }대상 파일에 아예 있으면 안 되는 키라면 무시하세요. 예: 디버그 문자열, 내부 플래그, 테스트 데이터:
json
{ "ignoredKeys": ["internal/debug", "dev/testData"] }수동 번역이 필요한 키라면 보존하세요. 예: 법률 문구, 규정 준수 콘텐츠, 사람의 검토가 필요한 마케팅 카피:
json
{ "preservedKeys": ["legal/privacy", "legal/terms"] }이름 변경은 자동으로 처리됩니다. CLI가 키는 바뀌었지만 내용은 그대로인 경우를 감지해, 재번역 없이 기존 번역을 이어서 사용합니다.
키 경로 표기법#
모든 키 배열은 중첩 경로에 슬래시(/) 표기법을 사용하고, 와일드카드에는 별표(*)를 사용합니다:
json
{
"lockedKeys": ["brand/name"],
"ignoredKeys": ["internal/*"],
"preservedKeys": ["legal/privacy/full"]
}이름에 점이 들어간 키도 자연스럽게 처리됩니다. 슬래시는 계층 단계를 구분하므로 modules/ai.translation은 "modules" 객체 안의 "ai.translation" 키를 정확하게 가리킵니다.
