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"]
}