Lingo.dev + .ts (TypeScript)

Lingo.dev CLI는 타입 정의, 객체 구조 및 TypeScript 특정 구문을 보존하면서 TypeScript 로케일 파일을 번역합니다. CLI는 TypeScript 타입 검사 및 추론을 유지하고, 모든 TypeScript 구문 및 기능을 지원하며, 기본 및 명명된 내보내기와 함께 작동하고, 템플릿 문자열 및 보간을 올바르게 처리하며, TypeScript 컴파일 프로세스와 원활하게 통합됩니다.

빠른 설정

TypeScript 로케일 파일 구성:

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

주의사항: [locale]은 CLI 실행 중에 실제 로케일로 대체되므로 구성에 그대로 유지해야 하는 플레이스홀더입니다.

TypeScript 파일 번역

npx lingo.dev@latest i18n

문자열 내용을 번역하는 동안 TypeScript 구문, 타입 주석 및 모듈 내보내기를 보존합니다.

TypeScript 구조 지원

기본 내보내기 요구사항

TypeScript 번역이 제대로 작동하려면 파일에서 객체를 기본 내보내기로 반드시 내보내야 합니다:

// 이렇게 하면 작동합니다 - 기본 내보내기 객체
export default {
  common: {
    save: "저장",
    cancel: "취소",
    delete: "삭제",
  },
  auth: {
    login: "로그인",
    register: "계정 만들기",
  },
} as const;
// 이것도 작동합니다 - 기본 내보내기가 있는 변수
const messages = {
  welcome: "앱에 오신 것을 환영합니다",
  error: "문제가 발생했습니다",
};
export default messages;

타입 안전성 보존

export const locale = {
  buttons: {
    submit: "양식 제출",
    reset: "초기화",
  },
} as const;

type LocaleKeys = typeof locale;

타입 정보와 const 단언은 그대로 유지됩니다.

고급 구성

다중 TypeScript 파일

"typescript": {
  "include": [
    "src/locales/[locale].ts",
    "src/translations/[locale]/*.ts"
  ]
}

타입 정의 잠금

"typescript": {
  "include": ["src/locales/[locale].ts"],
  "lockedKeys": ["__type", "metadata"]
}