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_USLocale | stringundefined
fallback缺失 key 回退包,默认内部用 en_USLocaleundefined
direction文本方向,'auto' 按 locale.rtl 推断'ltr'|'rtl'|'auto''auto'
inherit嵌套时深合并父级 LocaleProvider 语言包(子覆盖父,未覆盖继承父);false 则整体替换booleantrue
timeZone默认 IANA 时区(如 'Asia/Shanghai')注入 formatDate;未设时继承父级stringundefined
currency默认 ISO 4217 货币(如 'CNY')用于 currency 风格 formatNumber;未设时继承父级stringundefined

Events

事件载荷说明
onLocaleChangelocale/direction 变化时通知(受控,不回写)

Slots

名称说明
children作用域参数 { locale, t, formatDate, formatNumber, direction }

Accessibility

  • 无 DOM 无 role;推荐宿主监听 onLocaleChange 同步 html lang/dir 满足 WCAG 3.1.2;renderless 不丢焦点。