Lingo.dev + .json (Vue.js)

Lingo.dev CLI는 Vue.js i18n JSON 파일을 번역하면서 메시지 형식, 보간 구문 및 Vue 특정 규칙을 보존합니다. CLI는 vue-i18n 라이브러리와 원활하게 작동하며, 모든 Vue 메시지 형식을 유지하고, {name}과 같은 플레이스홀더를 보존하며, @: 구문을 사용한 메시지 연결을 올바르게 처리하고, 컴포넌트 보간 플레이스홀더를 그대로 유지합니다.

빠른 설정

Vue.js i18n 로케일 파일 구성:

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

참고: [locale]은 구성에서 문자 그대로 유지해야 하는 플레이스홀더로, CLI 실행 중에 실제 로케일로 대체됩니다.

Vue i18n 파일 번역

npx lingo.dev@latest i18n

Vue.js 메시지 형식, 보간 플레이스홀더 및 vue-i18n 특정 구문을 보존합니다.

Vue i18n 기능

메시지 보간

{
  "message": {
    "hello": "안녕하세요 {name}!",
    "welcome": "{name}님, 환영합니다. {count}개의 메시지가 있습니다"
  }
}

복수형 규칙

{
  "car": "자동차 | 자동차들",
  "apple": "사과 없음 | 사과 한 개 | 사과 {count}개"
}

연결된 메시지

{
  "common": {
    "name": "애플리케이션 이름"
  },
  "welcome": "@:common.name에 오신 것을 환영합니다"
}

Vue의 @: 메시지 연결 구문이 보존됩니다.

고급 Vue 기능

HTML 메시지 지원

{
  "message": {
    "title": "<strong>우리 플랫폼</strong>에 오신 것을 환영합니다",
    "link": "우리의 <a href='/help'>도움말 센터</a>를 방문하세요"
  }
}

컴포넌트 보간

{
  "message": {
    "terms": "저는 {0}서비스 약관{/0}과 {1}개인정보 보호정책{/1}에 동의합니다"
  }
}

컴포넌트 보간을 위한 플레이스홀더 구문이 그대로 유지됩니다.

날짜/시간 및 숫자 형식

{
  "datetime": {
    "short": "{value}",
    "long": "{value}"
  },
  "number": {
    "currency": "{value}"
  }
}

고급 구성

다중 로케일 디렉토리

"vue-json": {
  "include": [
    "src/locales/[locale].json",
    "src/i18n/[locale]/*.json"
  ]
}

Vue 특정 키 잠금

"vue-json": {
  "include": ["src/locales/[locale].json"],
  "lockedKeys": ["$vuetify", "dateTimeFormats", "numberFormats"]
}