LocaleProvider
为应用或局部区域统一设置 SnowUI 内置界面文案的语言,支持按需覆盖消息内容。
我们正在让 SnowUI 组件成为 AI 对话中可直接操作的界面。目前对话交互能力仍在建设中;本页展示网站用法,支持的对话平台与组件版本将在验证后公布。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。
LocaleProvider 的作用
LocaleProvider 为后代组件提供语言上下文,自身不增加 HTML 外壳、视觉样式或布局。将它放在需要共用一种语言的应用区域外层。
它翻译受支持的内置文案,例如对话框关闭按钮名称和明暗模式控件。页面标题、正文和应用消息仍由应用自行处理。
导入
LocaleProvider 随依据 SnowUI 许可公开下载的 Components 包提供。按照快速开始安装该包并加载共享样式表。
import { LocaleProvider } from '@snowui-design-system/components';请用 SnowUI 实现我随后提供的界面需求或设计稿。 SnowUI 的核心方向之一是让 AI 在对话中生成可交互界面,目前该能力建设中,正式组件的聊天宿主验收尚未完成。如果我的需求是在对话内展示,先核对宿主执行能力、组件版本与实际适配证据;仅使用已验证子集和允许动作,保留用户输入,区分本地交互、业务提交与结果续轮。缺少支持时如实说明,并采用获准的替代方式;网页预览、代码或仿样不能冒充对话内交互完成。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。 该豁免也适用于真实工作和获准数据,不要求产品编号、用途声明、登记台账或发布检查。仅当成果另行采用到独立网站/应用时,再按该产品用途核对许可;不要把对话会话或界面登记为项目。 首次采用先读完整 LICENSE:https://snowui.dev/LICENSE;已安装版本以随包许可为准。同任务、同版本、同产品和已确认范围复用检查。 先按 https://snowui.dev/llms/setup.md 与机器配置 https://snowui.dev/llms/setup.json 完成下载、安装、素材和环境准备。识别实际文件/终端、Svelte 构建、资源加载及消息内运行能力;获准的 Svelte 5 环境复用兼容依赖或使用 pnpm add --save-exact @snowui-design-system/components@0.3.0-alpha.11 @snowui-design-system/resource-svelte@1.0.31(沿用现有包管理器),自动解析 resource-base 依赖,入口只加载一次 @snowui-design-system/components/styles,再实际检查组件交互及素材加载。从 https://snowui.dev/llms/resources.json 按名称选择真实素材,不引用维护者磁盘路径,不将全库塞进每条消息。 分别报告下载、安装、构建、素材加载、消息内交互和续轮结果,给出以后可复用的非秘密配置摘要。本机安装或复制过的提示词不会自动配置另一个 AI 产品或新会话;先发现新宿主,再使用真实且已验的连接入口。当前机器配置尚无 SnowUI 聊天连接地址,不编造端点、不绕过宿主授权、不擅写 AI 记忆、不声称未执行的安装或渲染已经完成。 阅读设计指南:https://snowui.dev/llms/design-system.md;先拆页面区域,用公开组件与语义 HTML 实现。 首次阅读样式顺序:https://snowui.dev/llms/styling.md;先用 variant、size 等公开 Props 匹配,尽量保留原样;必要时用自己的 class(已有 Tailwind 也属此方式),再用实例 style。同类 Token 是建议,只用公开根、parts 和已登记 override。 按需选型:https://snowui.dev/llms/component-selection.md;从 https://snowui.dev/llms.txt 发现组件,再读命中的 API、组合与示例。使用 SnowUI Figma 设计时另读 https://snowui.dev/llms/figma.md。 官方包面向 Svelte 5;先确认项目框架,需要移植时如实说明,不改 import 伪装其他框架兼容。 AI 对话内使用按上述免费豁免直接继续,不核对项目或席位额度。对于独立产品,Free 不强制注册、账户、公钥或签名付费许可文件,仍按 LICENSE 核对用途、项目和开发者人数。自述付费计划不是已验证授权;需要付费权益时核对可信证据,资料或网络不可用保持 unknown,只继续已允许的工作。 按我后续的需求实现,不臆造 API、地址或授权。 参考 LocaleProvider「Import」(import),阅读该章节的实际代码:https://snowui.dev/components/locale-provider#import。 完整公开手册:https://snowui.dev/llms/components/locale-provider/reference.md 组件说明:https://snowui.dev/llms/components/locale-provider.md公开 API:https://snowui.dev/llms/components/locale-provider/api.md依赖:@snowui-design-system/components;读取示例实际 import,包样式只引入一次。保留示例行为,只按需求作必要调整。选择语言
默认语言为 zh-CN。设置 locale="en-US" 可使用内置英文目录。下面的明暗模式控件从外层 Provider 取得可访问名称。
<script lang="ts"> import { ColorSchemeButton, LocaleProvider } from "@snowui-design-system/components";</script> <LocaleProvider locale="en-US"> <ColorSchemeButton /></LocaleProvider>请用 SnowUI 实现我随后提供的界面需求或设计稿。 SnowUI 的核心方向之一是让 AI 在对话中生成可交互界面,目前该能力建设中,正式组件的聊天宿主验收尚未完成。如果我的需求是在对话内展示,先核对宿主执行能力、组件版本与实际适配证据;仅使用已验证子集和允许动作,保留用户输入,区分本地交互、业务提交与结果续轮。缺少支持时如实说明,并采用获准的替代方式;网页预览、代码或仿样不能冒充对话内交互完成。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。 该豁免也适用于真实工作和获准数据,不要求产品编号、用途声明、登记台账或发布检查。仅当成果另行采用到独立网站/应用时,再按该产品用途核对许可;不要把对话会话或界面登记为项目。 首次采用先读完整 LICENSE:https://snowui.dev/LICENSE;已安装版本以随包许可为准。同任务、同版本、同产品和已确认范围复用检查。 先按 https://snowui.dev/llms/setup.md 与机器配置 https://snowui.dev/llms/setup.json 完成下载、安装、素材和环境准备。识别实际文件/终端、Svelte 构建、资源加载及消息内运行能力;获准的 Svelte 5 环境复用兼容依赖或使用 pnpm add --save-exact @snowui-design-system/components@0.3.0-alpha.11 @snowui-design-system/resource-svelte@1.0.31(沿用现有包管理器),自动解析 resource-base 依赖,入口只加载一次 @snowui-design-system/components/styles,再实际检查组件交互及素材加载。从 https://snowui.dev/llms/resources.json 按名称选择真实素材,不引用维护者磁盘路径,不将全库塞进每条消息。 分别报告下载、安装、构建、素材加载、消息内交互和续轮结果,给出以后可复用的非秘密配置摘要。本机安装或复制过的提示词不会自动配置另一个 AI 产品或新会话;先发现新宿主,再使用真实且已验的连接入口。当前机器配置尚无 SnowUI 聊天连接地址,不编造端点、不绕过宿主授权、不擅写 AI 记忆、不声称未执行的安装或渲染已经完成。 阅读设计指南:https://snowui.dev/llms/design-system.md;先拆页面区域,用公开组件与语义 HTML 实现。 首次阅读样式顺序:https://snowui.dev/llms/styling.md;先用 variant、size 等公开 Props 匹配,尽量保留原样;必要时用自己的 class(已有 Tailwind 也属此方式),再用实例 style。同类 Token 是建议,只用公开根、parts 和已登记 override。 按需选型:https://snowui.dev/llms/component-selection.md;从 https://snowui.dev/llms.txt 发现组件,再读命中的 API、组合与示例。使用 SnowUI Figma 设计时另读 https://snowui.dev/llms/figma.md。 官方包面向 Svelte 5;先确认项目框架,需要移植时如实说明,不改 import 伪装其他框架兼容。 AI 对话内使用按上述免费豁免直接继续,不核对项目或席位额度。对于独立产品,Free 不强制注册、账户、公钥或签名付费许可文件,仍按 LICENSE 核对用途、项目和开发者人数。自述付费计划不是已验证授权;需要付费权益时核对可信证据,资料或网络不可用保持 unknown,只继续已允许的工作。 按我后续的需求实现,不臆造 API、地址或授权。 参考 LocaleProvider「Choose a language」(locale),阅读该章节的实际代码:https://snowui.dev/components/locale-provider#locale。 完整公开手册:https://snowui.dev/llms/components/locale-provider/reference.md 组件说明:https://snowui.dev/llms/components/locale-provider.md公开 API:https://snowui.dev/llms/components/locale-provider/api.md依赖:@snowui-design-system/components;读取示例实际 import,包样式只引入一次。保留示例行为,只按需求作必要调整。运行时切换语言
将响应式状态传给 locale,即可更新受支持的内置文案,无须重建 Provider。若需要跨访问保留选择,由应用保存所选语言。
<script lang="ts"> import { ColorSchemeButton, LocaleProvider } from "@snowui-design-system/components"; let locale = $state("zh-CN");</script> <label> 界面语言 <select bind:value={locale}> <option value="zh-CN">简体中文</option> <option value="en-US">English</option> </select></label> <LocaleProvider {locale}> <ColorSchemeButton /></LocaleProvider>请用 SnowUI 实现我随后提供的界面需求或设计稿。 SnowUI 的核心方向之一是让 AI 在对话中生成可交互界面,目前该能力建设中,正式组件的聊天宿主验收尚未完成。如果我的需求是在对话内展示,先核对宿主执行能力、组件版本与实际适配证据;仅使用已验证子集和允许动作,保留用户输入,区分本地交互、业务提交与结果续轮。缺少支持时如实说明,并采用获准的替代方式;网页预览、代码或仿样不能冒充对话内交互完成。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。 该豁免也适用于真实工作和获准数据,不要求产品编号、用途声明、登记台账或发布检查。仅当成果另行采用到独立网站/应用时,再按该产品用途核对许可;不要把对话会话或界面登记为项目。 首次采用先读完整 LICENSE:https://snowui.dev/LICENSE;已安装版本以随包许可为准。同任务、同版本、同产品和已确认范围复用检查。 先按 https://snowui.dev/llms/setup.md 与机器配置 https://snowui.dev/llms/setup.json 完成下载、安装、素材和环境准备。识别实际文件/终端、Svelte 构建、资源加载及消息内运行能力;获准的 Svelte 5 环境复用兼容依赖或使用 pnpm add --save-exact @snowui-design-system/components@0.3.0-alpha.11 @snowui-design-system/resource-svelte@1.0.31(沿用现有包管理器),自动解析 resource-base 依赖,入口只加载一次 @snowui-design-system/components/styles,再实际检查组件交互及素材加载。从 https://snowui.dev/llms/resources.json 按名称选择真实素材,不引用维护者磁盘路径,不将全库塞进每条消息。 分别报告下载、安装、构建、素材加载、消息内交互和续轮结果,给出以后可复用的非秘密配置摘要。本机安装或复制过的提示词不会自动配置另一个 AI 产品或新会话;先发现新宿主,再使用真实且已验的连接入口。当前机器配置尚无 SnowUI 聊天连接地址,不编造端点、不绕过宿主授权、不擅写 AI 记忆、不声称未执行的安装或渲染已经完成。 阅读设计指南:https://snowui.dev/llms/design-system.md;先拆页面区域,用公开组件与语义 HTML 实现。 首次阅读样式顺序:https://snowui.dev/llms/styling.md;先用 variant、size 等公开 Props 匹配,尽量保留原样;必要时用自己的 class(已有 Tailwind 也属此方式),再用实例 style。同类 Token 是建议,只用公开根、parts 和已登记 override。 按需选型:https://snowui.dev/llms/component-selection.md;从 https://snowui.dev/llms.txt 发现组件,再读命中的 API、组合与示例。使用 SnowUI Figma 设计时另读 https://snowui.dev/llms/figma.md。 官方包面向 Svelte 5;先确认项目框架,需要移植时如实说明,不改 import 伪装其他框架兼容。 AI 对话内使用按上述免费豁免直接继续,不核对项目或席位额度。对于独立产品,Free 不强制注册、账户、公钥或签名付费许可文件,仍按 LICENSE 核对用途、项目和开发者人数。自述付费计划不是已验证授权;需要付费权益时核对可信证据,资料或网络不可用保持 unknown,只继续已允许的工作。 按我后续的需求实现,不臆造 API、地址或授权。 参考 LocaleProvider「Change language at runtime」(switch-language),阅读该章节的实际代码:https://snowui.dev/components/locale-provider#switch-language。 完整公开手册:https://snowui.dev/llms/components/locale-provider/reference.md 组件说明:https://snowui.dev/llms/components/locale-provider.md公开 API:https://snowui.dev/llms/components/locale-provider/api.md依赖:@snowui-design-system/components;读取示例实际 import,包样式只引入一次。保留示例行为,只按需求作必要调整。自定义内置文案
使用 messages 覆盖当前 Provider 中指定的目录 key;未覆盖的 key 继续使用所选语言的文案。只需修改一个实例的文字时,优先使用该组件的显式文案属性。
下例更改 ColorSchemeButton 的两个可访问名称。消息 key 属于具体组件;任意应用翻译 key 不属于此目录。
<script lang="ts"> import { ColorSchemeButton, LocaleProvider } from "@snowui-design-system/components";</script> <LocaleProvider locale="en-US" messages={{ "colorSchemeButton.toLight": "Use light appearance", "colorSchemeButton.toDark": "Use dark appearance"}}> <ColorSchemeButton /></LocaleProvider>请用 SnowUI 实现我随后提供的界面需求或设计稿。 SnowUI 的核心方向之一是让 AI 在对话中生成可交互界面,目前该能力建设中,正式组件的聊天宿主验收尚未完成。如果我的需求是在对话内展示,先核对宿主执行能力、组件版本与实际适配证据;仅使用已验证子集和允许动作,保留用户输入,区分本地交互、业务提交与结果续轮。缺少支持时如实说明,并采用获准的替代方式;网页预览、代码或仿样不能冒充对话内交互完成。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。 该豁免也适用于真实工作和获准数据,不要求产品编号、用途声明、登记台账或发布检查。仅当成果另行采用到独立网站/应用时,再按该产品用途核对许可;不要把对话会话或界面登记为项目。 首次采用先读完整 LICENSE:https://snowui.dev/LICENSE;已安装版本以随包许可为准。同任务、同版本、同产品和已确认范围复用检查。 先按 https://snowui.dev/llms/setup.md 与机器配置 https://snowui.dev/llms/setup.json 完成下载、安装、素材和环境准备。识别实际文件/终端、Svelte 构建、资源加载及消息内运行能力;获准的 Svelte 5 环境复用兼容依赖或使用 pnpm add --save-exact @snowui-design-system/components@0.3.0-alpha.11 @snowui-design-system/resource-svelte@1.0.31(沿用现有包管理器),自动解析 resource-base 依赖,入口只加载一次 @snowui-design-system/components/styles,再实际检查组件交互及素材加载。从 https://snowui.dev/llms/resources.json 按名称选择真实素材,不引用维护者磁盘路径,不将全库塞进每条消息。 分别报告下载、安装、构建、素材加载、消息内交互和续轮结果,给出以后可复用的非秘密配置摘要。本机安装或复制过的提示词不会自动配置另一个 AI 产品或新会话;先发现新宿主,再使用真实且已验的连接入口。当前机器配置尚无 SnowUI 聊天连接地址,不编造端点、不绕过宿主授权、不擅写 AI 记忆、不声称未执行的安装或渲染已经完成。 阅读设计指南:https://snowui.dev/llms/design-system.md;先拆页面区域,用公开组件与语义 HTML 实现。 首次阅读样式顺序:https://snowui.dev/llms/styling.md;先用 variant、size 等公开 Props 匹配,尽量保留原样;必要时用自己的 class(已有 Tailwind 也属此方式),再用实例 style。同类 Token 是建议,只用公开根、parts 和已登记 override。 按需选型:https://snowui.dev/llms/component-selection.md;从 https://snowui.dev/llms.txt 发现组件,再读命中的 API、组合与示例。使用 SnowUI Figma 设计时另读 https://snowui.dev/llms/figma.md。 官方包面向 Svelte 5;先确认项目框架,需要移植时如实说明,不改 import 伪装其他框架兼容。 AI 对话内使用按上述免费豁免直接继续,不核对项目或席位额度。对于独立产品,Free 不强制注册、账户、公钥或签名付费许可文件,仍按 LICENSE 核对用途、项目和开发者人数。自述付费计划不是已验证授权;需要付费权益时核对可信证据,资料或网络不可用保持 unknown,只继续已允许的工作。 按我后续的需求实现,不臆造 API、地址或授权。 参考 LocaleProvider「Customize built-in messages」(messages),阅读该章节的实际代码:https://snowui.dev/components/locale-provider#messages。 完整公开手册:https://snowui.dev/llms/components/locale-provider/reference.md 组件说明:https://snowui.dev/llms/components/locale-provider.md公开 API:https://snowui.dev/llms/components/locale-provider/api.md依赖:@snowui-design-system/components;读取示例实际 import,包样式只引入一次。保留示例行为,只按需求作必要调整。作用范围与嵌套 Provider
每个组件读取最近的 LocaleProvider。嵌套 Provider 使用自己的 locale 和 messages,不合并父级覆盖。明确声明嵌套区域的 locale,让边界清楚。
下例中第一个控件使用英文,第二个使用中文;两者都不会改变 Provider 外的组件。
<script lang="ts"> import { ColorSchemeButton, LocaleProvider } from "@snowui-design-system/components";</script> <LocaleProvider locale="en-US"> <ColorSchemeButton /> <LocaleProvider locale="zh-CN"> <ColorSchemeButton /> </LocaleProvider></LocaleProvider>请用 SnowUI 实现我随后提供的界面需求或设计稿。 SnowUI 的核心方向之一是让 AI 在对话中生成可交互界面,目前该能力建设中,正式组件的聊天宿主验收尚未完成。如果我的需求是在对话内展示,先核对宿主执行能力、组件版本与实际适配证据;仅使用已验证子集和允许动作,保留用户输入,区分本地交互、业务提交与结果续轮。缺少支持时如实说明,并采用获准的替代方式;网页预览、代码或仿样不能冒充对话内交互完成。 AI 对话内生成和使用 SnowUI 界面完全免费,不属于项目,不占项目或开发者席位额度,无需 SnowUI 注册、激活或付费证明。 该豁免也适用于真实工作和获准数据,不要求产品编号、用途声明、登记台账或发布检查。仅当成果另行采用到独立网站/应用时,再按该产品用途核对许可;不要把对话会话或界面登记为项目。 首次采用先读完整 LICENSE:https://snowui.dev/LICENSE;已安装版本以随包许可为准。同任务、同版本、同产品和已确认范围复用检查。 先按 https://snowui.dev/llms/setup.md 与机器配置 https://snowui.dev/llms/setup.json 完成下载、安装、素材和环境准备。识别实际文件/终端、Svelte 构建、资源加载及消息内运行能力;获准的 Svelte 5 环境复用兼容依赖或使用 pnpm add --save-exact @snowui-design-system/components@0.3.0-alpha.11 @snowui-design-system/resource-svelte@1.0.31(沿用现有包管理器),自动解析 resource-base 依赖,入口只加载一次 @snowui-design-system/components/styles,再实际检查组件交互及素材加载。从 https://snowui.dev/llms/resources.json 按名称选择真实素材,不引用维护者磁盘路径,不将全库塞进每条消息。 分别报告下载、安装、构建、素材加载、消息内交互和续轮结果,给出以后可复用的非秘密配置摘要。本机安装或复制过的提示词不会自动配置另一个 AI 产品或新会话;先发现新宿主,再使用真实且已验的连接入口。当前机器配置尚无 SnowUI 聊天连接地址,不编造端点、不绕过宿主授权、不擅写 AI 记忆、不声称未执行的安装或渲染已经完成。 阅读设计指南:https://snowui.dev/llms/design-system.md;先拆页面区域,用公开组件与语义 HTML 实现。 首次阅读样式顺序:https://snowui.dev/llms/styling.md;先用 variant、size 等公开 Props 匹配,尽量保留原样;必要时用自己的 class(已有 Tailwind 也属此方式),再用实例 style。同类 Token 是建议,只用公开根、parts 和已登记 override。 按需选型:https://snowui.dev/llms/component-selection.md;从 https://snowui.dev/llms.txt 发现组件,再读命中的 API、组合与示例。使用 SnowUI Figma 设计时另读 https://snowui.dev/llms/figma.md。 官方包面向 Svelte 5;先确认项目框架,需要移植时如实说明,不改 import 伪装其他框架兼容。 AI 对话内使用按上述免费豁免直接继续,不核对项目或席位额度。对于独立产品,Free 不强制注册、账户、公钥或签名付费许可文件,仍按 LICENSE 核对用途、项目和开发者人数。自述付费计划不是已验证授权;需要付费权益时核对可信证据,资料或网络不可用保持 unknown,只继续已允许的工作。 按我后续的需求实现,不臆造 API、地址或授权。 参考 LocaleProvider「Scope and nested providers」(scope),阅读该章节的实际代码:https://snowui.dev/components/locale-provider#scope。 完整公开手册:https://snowui.dev/llms/components/locale-provider/reference.md 组件说明:https://snowui.dev/llms/components/locale-provider.md公开 API:https://snowui.dev/llms/components/locale-provider/api.md依赖:@snowui-design-system/components;读取示例实际 import,包样式只引入一次。保留示例行为,只按需求作必要调整。覆盖与回退
文案依次从组件显式标签、Provider messages、当前语言目录、默认 zh-CN 目录和消息 key 中解析。
当前内置目录为 zh-CN 和 en-US。解析时先尝试完整 locale,再尝试已登记的语言主标签目录,最后回退 zh-CN。目前没有登记仅含语言主标签的目录;应使用 en-US,而不要假定 en 或 en-GB 会取得英文文案。
应用内容与格式化
LocaleProvider 不翻译任意子内容,也不更改文档的 lang 或 dir 属性。应用应让这些属性及业务翻译与所选语言保持一致。
格式化数值请使用日期和数字组件文档中说明的 locale 与格式化选项。此 Provider 的公开契约只覆盖内置界面文案,不承诺重新格式化应用中的所有日期和数字。
API 参考
| 属性 | 类型 | 默认值 | 示例 | 描述 |
|---|---|---|---|---|
locale | string | "zh-CN" | locale="Example" | 当前语言标识;内置 zh-CN、en-US,未知语言按语言主标签再回退 zh-CN。 |
messages | SnowUIMessageOverrides | {} | messages={value} | 仅覆盖当前 Provider 子树的内置 message key。 |
children | Snippet | — | <LocaleProvider>Content</LocaleProvider> | 当前 locale 和 messages 生效的子树,无参数;Provider 不添加 DOM 外壳。 |