用途:使用 Intlayer 的内容节点定义富文本与动态内容,适合在组件中声明多语言、条件化或模板化的文案。
主要能力(均来自 intlayer 包导出):
- t:定义映射到各 locale 的多语言内容,locale 需在配置文件中声明。
- enu:按键、数字或范围映射内容,可用于复数处理,支持 fallback。
- cond:基于布尔条件返回内容,支持 fallback。
- md / html:以 Markdown 或 HTML 定义富文本。
- nest:引用另一个字典的整段内容或指定路径(如 nest("code", "title"))。
- insert:定义带变量的动态内容,如 insert("Hello {{name}}!")。
- file:引用外部文件作为内容。
- gender:按性别(male、female 等)返回内容,支持 fallback。
- 函数获取:可用同步或异步函数生成内容。
使用方式:内容可写在 .content.ts、.content.tsx、JSON 或 JS 文件中,通过 key 唯一标识并以 Dictionary 类型导出。支持的配置文件包括 intlayer.config.{ts|js|json|json5|jsonc|cjs|mjs} 和 .intlayerrc。节点可嵌套组合实现复杂逻辑,类型校验可使用 Dictionary<{ title: string; description?: string }>。
字典关键字段:key(标识符)、title(可读名称)、description(用途说明,便于生成翻译)、tags(分类);locale、contentAutoTransformation、fill;priority(合并冲突优先级)、importMode(static/dynamic/live)、location(hybrid/remote/local)以及 schema(配置文件中声明的 zod 校验)。
适用场景:多语言站点文案、复数与条件文案、性别化问候、变量模板、Markdown/HTML 富文本、跨字典内容复用。
限制:资料未提供收费、价格、平台或效果信息;locale 必须在配置文件中声明,enu 中重叠范围(如 >5 与 >19)不会触发,fallback 为可选但建议设置以避免 undefined。