开始声明您的内容
文件扩展名
默认情况下,Intlayer 会监视以下扩展名的所有文件以声明内容:
- .content.ts
- .content.tsx
- .content.js
- .content.mjs
- .content.cjs
应用程序将默认搜索与 ./src/**/*.content.{ts,tsx,js,jsx,mjs,cjs} 全局模式匹配的文件。
这些默认扩展名适用于大多数应用程序。然而,如果您有特定需求,请参阅 内容扩展自定义指南 以获取如何管理它们的说明。
有关完整的配置选项列表,请访问配置文档。
声明您的内容
创建和管理您的字典:
src/example.content.ts
import { t, enu, cond, nest, md, type Dictionary } from "intlayer";interface Content { imbricatedContent: { imbricatedContent2: { stringContent: string; numberContent: number; booleanContent: boolean; }; multilingualContent: string; quantityContent: string; conditionalContent: string; nestedContent: string; markdownContent: string; externalContent: string; };}export default { key: "page", content: { imbricatedContent: { imbricatedContent2: { stringContent: "你好,世界", numberContent: 123, booleanContent: true, javaScriptContent: `${process.env.NODE_ENV}`, }, }, multilingualContent: t({ en: "English content", "en-GB": "English content (UK)", fr: "French content", es: "Spanish content", zh: "中文内容", }), quantityContent: enu({ "<-1": "少于负一辆车", "-1": "负一辆车", "0": "没有车", "1": "一辆车", ">5": "一些车", ">19": "很多车", }), conditionalContent: cond({ true: "验证已启用", false: "验证已禁用", }), nestedContent: nest( "navbar", // 要嵌套的字典键 "login.button" // [可选] 要嵌套的内容路径 ), externalContent: async () => await fetch("https://example.com"), markdownContent: md("# Markdown 示例"), /* * 仅在使用 `react-intlayer` 或 `next-intlayer` 时可用 */ jsxContent: <h1>我的标题</h1>, },} satisfies Dictionary<Content>; // [可选] Dictionary 是泛型的,允许您加强字典的格式
函数嵌套
您可以毫无问题地将函数嵌套到其他函数中。
示例:
src/example.content.ts
import { t, enu, cond, nest, md, type Dictionary } from "intlayer";const getName = async () => "约翰·多伊";export default { key: "page", content: { // `getIntlayer('page','zh').hiMessage` 返回 `['你好', ' ', '约翰·多伊']` hiMessage: [ t({ en: "Hi", fr: "Salut", es: "Hola", zh: "你好", }), " ", getName(), ], // 复合内容嵌套条件、枚举和多语言内容 // `getIntlayer('page','zh').advancedContent(true)(10)` 返回 '找到多个项目' advancedContent: cond({ true: enu({ "0": t({ en: "No items found", fr: "Aucun article trouvé", es: "No se encontraron artículos", zh: "未找到项目", }), "1": t({ en: "One item found", fr: "Un article trouvé", es: "Se encontró un artículo", zh: "找到一个项目", }), ">1": t({ en: "Multiple items found", fr: "Plusieurs articles trouvés", es: "Se encontraron múltiples artículos", zh: "找到多个项目", }), }), false: t({ en: "No valid data available", fr: "Aucune donnée valide disponible", es: "No hay datos válidos disponibles", zh: "没有有效数据可用", }), }), },} satisfies Dictionary;
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接