언어 추가하기

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 i18n을 실행하면 새로운 독일어 번역 파일이 생성됩니다:

locales/
  en.json    (소스 - 변경 없음)
  es.json    (기존 - 변경 없음)
  fr.json    (기존 - 변경 없음)
  de.json    (새로 생성 - 완전히 번역됨)

새 언어 생성 작동 방식

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

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

부분적으로 기존 번역이 있는 예시:

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

// locales/es.json (누락된 번역이 있는 기존 파일)
{
  "welcome": "Bienvenido"
}

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

// locales/es.json (빈 부분이 채워짐)
{
  "welcome": "Bienvenido",
  "button.save": "Guardar",
  "error.network": "Error de red"
}

// locales/de.json (완전히 새로운 파일)
{
  "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

마크다운 버킷:

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

중첩 구조:

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

특정 언어 추가

특정 새 언어에 대한 번역을 생성하려면 --locale 플래그를 사용하세요:

npx lingo.dev@latest i18n --locale de

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

언어 제거

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

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

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