export default {
dashboard: {
greeting: "你好,{name: string}!",
membership: "{role, select, admin {管理员} pro {专业版会员} other {普通会员}}",
cart: "{count, plural, =0 {购物车暂无商品} other {购物车共有 # 件商品}}",
discount: "限时促销:<badge>全场 8 折</badge>",
invoice: "结算总额:{amount, number, currency}",
delivery: "预计送达:{time}",
},
} as const;实时预览
你好,开发者!
专业版会员购物车共有 3 件商品结算总额:¥899.50
预计送达:2天后
类型安全
支持翻译键名、命名空间及插值参数的 TypeScript 类型推导,并校验跨语言词典结构的一致性。
零运行时依赖
基于 TypeScript 与 Web 标准 Intl API 构建,无需代码生成步骤。 Minified + Gzipped: < 5 kB
ICU Message Format 支持
支持复数规则、序数词、条件分支(select)与富文本标签映射,无需引入外部解析器。
框架无关
适用于 Astro、Next.js、React、Vue、Svelte、Node.js、Bun 及 Cloudflare Workers 等多种环境。
基准测试
网络传输体积基准测试
模拟多语言 Web 应用在首屏预渲染与客户端水合(Hydration)时,浏览器实际下载的全部国际化资源网络传输体积。
首屏网络传输体积 (KB)
Playwright Headless Chromium · Real HTTP Transfer Size
paraglide中间件拆包
-91%36.3 KB
ts-intl按需拆包
-86%57.8 KB
paraglide默认全量
-82%76.6 KB
i18nextHTTP 动态加载
-55%188.7 KB
ts-intl默认全量
-14%360.0 KB
i18next默认全量
Baseline420.4 KB
运行时体积与依赖考量
i18next 包含独立解析器与插件运行时,存在固定体积开销;ts-intl 无第三方依赖,核心运行时约 2 KB,在按需拆包模式下仅传输当前语言的字典分块。
编译型与运行时方案机制差异
Paraglide 编译每条消息为独立函数并支持 Tree-shaking 未使用词条;ts-intl 作为轻量运行时方案无需代码生成,通过标准动态 import 避免多语言字典合并打包。