开始声明您的内容

    文件扩展名

    默认情况下,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 链接