Lingo.dev + .json-dictionary

Lingo.dev CLI는 각 번역 가능한 문자열이 단일 객체 내에 여러 로케일 키를 포함하는 JSON 파일을 번역합니다. 로케일을 다른 파일로 분리하는 표준 JSON 형식과 달리, json-dictionary는 {"en": "Hello", "es": "Hola"}와 같이 로케일별 키와 함께 모든 번역을 저장합니다.

빠른 설정

'i18n.json' 구성 파일을 생성하세요:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json-dictionary": {
      "include": ["content/pages.json"]
    }
  }
}

파일 구조

json-dictionary 형식은 로케일 키가 있는 중첩 객체로 번역을 저장합니다:

{
  "title": {
    "en": "Welcome to our site",
    "es": "Bienvenido a nuestro sitio"
  },
  "navigation": {
    "home": {
      "en": "Home",
      "es": "Inicio"
    },
    "about": {
      "en": "About Us",
      "es": "Acerca de nosotros"
    }
  },
  "staticValue": "This won't be translated",
  "pages": [
    {
      "title": {
        "en": "Page One",
        "es": "Página Uno"
      }
    }
  ]
}

모든 것 번역하기

npx lingo.dev@latest i18n

CLI는 자동으로:

  • 번역 가능한 객체만 추출(로케일 키가 있는 객체)
  • 번역 불가능한 값은 변경 없이 보존
  • 기존 키 옆에 대상 로케일 키 추가
  • 소스 로케일 키 순서 유지(소스 먼저, 나머지는 알파벳 순)

키 동작 방식

번역 가능 감지: 소스 로케일 키를 포함하는 객체만 번역 가능한 것으로 간주됩니다. 일반 문자열, 숫자, 불리언 및 로케일 키가 없는 객체는 변경되지 않습니다.

키 정렬: 번역을 추가할 때, 소스 로케일이 먼저 표시되고 다른 로케일은 알파벳 순으로 표시됩니다:

{
  "message": {
    "en": "Original text",
    "de": "Deutscher Text",
    "es": "Texto en español",
    "fr": "Texte français"
  }
}

중첩 지원: 깊게 중첩된 구조와 번역 가능한 객체를 포함하는 배열에서도 작동합니다.

고급 설정

파일 제외하기

"json-dictionary": {
  "include": ["content/*.json"],
  "exclude": ["content/config.json"]
}