LocaleProvider
语言上下文注入组件,renderless 无 DOM 输出,通过 setContext 注入 LocaleApi(t/formatDate/formatNumber/direction)供后代组件消费;含回退链 + Intl 缓存 + direction 推断,是 ConfigProvider 的 locale 维度子集。locale 支持语言包对象或字符串码(registerLocale 注册表 + 内置查表解析);嵌套时 inherit 深合并父级语言包(子覆盖父);timeZone/currency 经 context 注入 formatDate/formatNumber。
如何引入
import { LocaleProvider } from '@chenzy-design/svelte';基础国际化
切换语言后子组件内置文案随之变化
生效 locale:zh-CN
Modal.okText:确定
格式化数字 1234567.89:1,234,567.89
字符串语言码
locale 传内置字符串码(zh-CN / en-US),Empty 与 Pagination 等组件内置文案同步切换
Empty 内置文案
Pagination 内置文案
嵌套覆盖局部文案
内层 Provider 默认 inherit 深合并外层语言包,仅覆盖指定 key,其余继承父级
外层(zh_CN 原文案)
内层(仅覆盖 total 文案,其余继承外层)
注册自定义语言包
registerLocale 将自定义包注册到字符串码,之后 locale 直接传该码即可解析
自定义注册包 zh-CN-formal
API 参考
LocaleProvider
Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
locale | 语言包对象或字符串码(如 'zh_CN'/'en-US');字符串经 registerLocale 注册表 + 内置查表解析,未知码回退 en_US | Locale | string | undefined |
fallback | 缺失 key 回退包,默认内部用 en_US | Locale | undefined |
direction | 文本方向,'auto' 按 locale.rtl 推断 | 'ltr'|'rtl'|'auto' | 'auto' |
inherit | 嵌套时深合并父级 LocaleProvider 语言包(子覆盖父,未覆盖继承父);false 则整体替换 | boolean | true |
timeZone | 默认 IANA 时区(如 'Asia/Shanghai')注入 formatDate;未设时继承父级 | string | undefined |
currency | 默认 ISO 4217 货币(如 'CNY')用于 currency 风格 formatNumber;未设时继承父级 | string | undefined |
Events
| 事件 | 载荷 | 说明 |
|---|---|---|
onLocaleChange | — | locale/direction 变化时通知(受控,不回写) |
Slots
| 名称 | 说明 |
|---|---|
children | 作用域参数 { locale, t, formatDate, formatNumber, direction } |
Accessibility
- 无 DOM 无 role;推荐宿主监听 onLocaleChange 同步 html lang/dir 满足 WCAG 3.1.2;renderless 不丢焦点。