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