기존 번역 작업하기

Lingo.dev CLI는 이미 번역 파일이 있는 프로젝트와 원활하게 통합되어 기존 작업을 보존하면서 누락된 번역을 채웁니다.

기존 번역이 있는 프로젝트에서 CLI를 실행하면, 이미 번역된 내용을 분석하고 누락된 키에 대한 콘텐츠만 생성하여 기존 번역 품질과 일관성을 유지합니다.

참고: 대상 언어 파일이 비어 있고 소스 언어의 콘텐츠를 포함하지 않는지 확인하세요. 대상 파일에 소스 언어 콘텐츠가 있는 것은 좋지 않은 관행이며 번역 프로세스를 방해할 수 있습니다.

작동 방식

Lingo.dev CLI는 소스 콘텐츠를 기존 대상 파일과 비교하여 누락된 부분을 식별합니다. 누락된 번역만 생성되며 기존 작업은 그대로 유지됩니다.

예시 시나리오:

// locales/en.json (source)
{
  "welcome": "Welcome to our app",
  "button.save": "Save",
  "button.cancel": "Cancel",
  "error.network": "Network error"
}

// locales/es.json (existing partial translations)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar"
}

npx lingo.dev@latest run를 실행하면 누락된 번역만 생성됩니다:

// locales/es.json (after CLI run)
{
  "welcome": "Bienvenido a nuestra aplicación",
  "button.save": "Guardar",
  "button.cancel": "Cancelar",
  "error.network": "Error de red"
}

기존의 "welcome" 및 "button.save" 번역은 변경되지 않습니다.

기존 번역이 있는 상태에서 첫 실행

기존 번역이 있는 프로젝트에서 Lingo.dev CLI를 처음 실행하면, 현재 상태를 기반으로 i18n.lock 파일이 생성됩니다. 이 lockfile은 처리된 콘텐츠를 추적하여 기존 번역이 재생성되지 않도록 합니다.

워크플로:

  1. 초기 스캔 — CLI가 대상 파일에서 기존 번역을 식별합니다
  2. 누락 분석 — 소스 키를 대상 파일과 비교하여 누락된 번역을 찾습니다
  3. 번역 생성 — 누락된 번역만 생성합니다
  4. Lockfile 생성 — 모든 소스 콘텐츠에 대한 콘텐츠 지문을 기록합니다

레거시 번역 시스템에서 마이그레이션

Lingo.dev CLI는 JSON, YAML 또는 기타 지원되는 파일 형식과 같은 표준 형식을 따르는 한, 모든 도구로 생성된 번역 파일과 함께 작동합니다.

마이그레이션 단계:

  1. i18n.json 구성 — 기존 파일 위치와 일치하도록 버킷 패턴 설정
  2. 초기 번역 실행 — CLI가 누락된 번역을 채움
  3. 검토 및 커밋 — 기존 번역은 보존되고 누락된 부분만 채워짐

마이그레이션 예시:

// Your existing project structure
locales/
  en.json    (source)
  es.json    (partial translations from previous tool)
  fr.json    (partial translations from previous tool)

// i18n.json configuration
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"]
    }
  }
}

CLI는 기존 파일 구조와 번역을 존중합니다.

번역 품질 처리

기존 번역은 AI 번역 엔진에서 생성된 번역보다 품질이 낮을 수 있습니다. Lingo.dev CLI는 필요할 때 번역을 새로 고칠 수 있는 옵션을 제공합니다:

기존 번역 유지:

npx lingo.dev@latest run
# Preserves all existing translations, fills in gaps

특정 언어 재번역:

npx lingo.dev@latest run --force --target-locale es
# Regenerates all Spanish translations

특정 키 재번역:

npx lingo.dev@latest run --force --key error.network
# Regenerates just the error.network key across all languages

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

빈 대상 파일

빈 대상 파일이나 일부 키만 있는 파일이 있는 경우, Lingo.dev CLI는 이를 부분적으로 번역된 것으로 처리하고 누락된 콘텐츠를 채웁니다.

예시:

// locales/de.json (empty target file)
{}

CLI를 실행한 후, 모든 소스 키가 번역된 완전한 번역 파일이 됩니다.

잠금 파일 초기화

첫 실행 시 기존 상태를 반영하는 i18n.lock 파일이 생성됩니다. 이는 Lingo.dev CLI에서 원래 생성되지 않았더라도 이미 존재했던 콘텐츠를 재번역하지 않도록 방지합니다.

이 잠금 파일은 향후 기존 번역과 새 번역 간의 일관된 동작을 보장합니다.