언어 추가

Lingo.dev CLI를 사용하면 i18n.json 구성에 대상 로케일을 추가하고 단일 명령을 실행하여 프로젝트를 새로운 언어로 간편하게 확장할 수 있습니다.

새 언어를 추가하면 CLI는 모든 기존 번역을 보존하고 동일한 콘텐츠 핑거프린팅 시스템을 유지하면서 새 로케일에 대한 완전한 번역 파일을 생성합니다.

첫 번째 새 언어 추가

새 언어를 추가하려면 i18n.json 구성에서 targets 배열을 업데이트하세요:

원본 구성:

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

독일어가 추가된 업데이트된 구성:

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

npx lingo.dev@latest run를 실행하면 새로운 독일어 번역 파일이 생성됩니다:

locales/
  en.json    (source - unchanged)
  es.json    (existing - unchanged)
  fr.json    (existing - unchanged)
  de.json    (new - fully translated)

새 언어 생성 작동 방식

Lingo.dev CLI는 새 언어를 기존 언어와 다르게 처리합니다:

  1. 기존 언어 — 누락된 번역만 생성됩니다
  2. 새 언어 — 완전한 번역 파일이 처음부터 생성됩니다

부분적으로 존재하는 번역의 예:

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

// locales/es.json (existing with missing translations)
{
  "welcome": "Bienvenido"
}

독일어를 추가하고 CLI를 실행한 후:

// locales/es.json (gaps filled)
{
  "welcome": "Bienvenido",
  "button.save": "Guardar",
  "error.network": "Error de red"
}

// locales/de.json (complete new file)
{
  "welcome": "Willkommen",
  "button.save": "Speichern",
  "error.network": "Netzwerkfehler"
}

여러 언어 동시 추가

여러 언어를 동시에 추가할 수 있습니다:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja", "zh"]
  }
}

CLI는 모든 새 언어를 처리하여 각 새 로케일에 대한 완전한 번역 파일을 생성합니다.

지역 변형

Lingo.dev CLI는 BCP 47 언어 태그를 사용하여 지역 언어 변형을 지원합니다:

{
  "locale": {
    "source": "en-US",
    "targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
  }
}

이는 각 지역 변형에 대해 별도의 번역 파일을 생성하며, 용어, 철자 및 문화적 맥락의 차이를 고려합니다.

파일 구조 영향

CLI는 버킷 패턴에 따라 새 파일을 생성합니다. 다양한 파일 형식의 경우:

JSON 버킷:

locales/[locale].json → locales/de.json, locales/ja.json

Markdown 버킷:

content/[locale]/*.md → content/de/*.md, content/ja/*.md

중첩 구조:

app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json

특정 언어 추가

--target-locale 플래그를 사용하여 특정 새 언어에 대한 번역을 생성할 수 있습니다:

npx lingo.dev@latest run --target-locale de

이는 독일어 번역만 생성하며, 다른 새 언어는 나중에 처리하도록 남겨둡니다.

언어 제거

언어를 제거하려면 targets 배열에서 해당 언어를 제거하기만 하면 됩니다. CLI는 기존 파일을 삭제하지 않지만 해당 로케일 처리를 중단합니다:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr"]
  }
}

필요한 경우 해당 번역 파일을 수동으로 삭제할 수 있습니다.