\n\n\n```\n\n \n \n\nTo use embedded file content in Svelte components, retrieve it via the `useIntlayer` hook. The store is accessed with `$`. Here's an example:\n\n```svelte fileName=\"**/*.svelte\"\n\n\n
\n
{$content.myFile}
\n
\n```\n\n
\n \n\nTo use embedded file content in Preact components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { FC } from \"preact\";\nimport { useIntlayer } from \"preact-intlayer\";\n\nconst FileComponent: FC = () => {\n const { myFile } = useIntlayer(\"my_key\");\n\n return (\n
\n
{myFile}
\n
\n );\n};\n\nexport default FileComponent;\n```\n\n
\n \n\nTo use embedded file content in SolidJS components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { Component } from \"solid-js\";\nimport { useIntlayer } from \"solid-intlayer\";\n\nconst FileComponent: Component = () => {\n const { myFile } = useIntlayer(\"my_key\");\n\n return (\n
\n
{myFile}
\n
\n );\n};\n\nexport default FileComponent;\n```\n\n
\n \n\nTo use embedded file content in Angular components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```typescript fileName=\"app.component.ts\" codeFormat=\"typescript\"\nimport { Component } from \"@angular/core\";\nimport { useIntlayer } from \"angular-intlayer\";\n\n@Component({\n selector: \"app-file\",\n template: `\n
\n
{{ content().myFile }}
\n
\n `,\n})\nexport class FileComponent {\n content = useIntlayer(\"my_key\");\n}\n```\n\n
\n \n\nTo use embedded file content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```typescript fileName=\"**/*.ts\" codeFormat={[\"typescript\", \"esm\"]}\nimport { installIntlayer, useIntlayer } from \"vanilla-intlayer\";\n\ninstallIntlayer();\n\nconst content = useIntlayer(\"my_key\").onChange((newContent) => {\n document.getElementById(\"file-content\")!.textContent = newContent.myFile;\n});\n\n// Initial render\ndocument.getElementById(\"file-content\")!.textContent = content.myFile;\n```\n\n \n\n\n## 多语言 Markdown 示例\n\n为了支持多语言可编辑的 Markdown 文件,您可以结合使用 `file`、`t()` 和 `md()` 来定义 Markdown 内容文件的不同语言版本。\n\n```typescript fileName=\"**/*.content.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nimport { file, t, md, type Dictionary } from \"intlayer\";\n\nconst myMultilingualContent = {\n key: \"my_multilingual_key\",\n content: {\n myContent: md(\n t({\n zh: file(\"src/components/test.zh.md\"),\n en: file(\"src/components/test.en.md\"),\n fr: file(\"src/components/test.fr.md\"),\n es: file(\"src/components/test.es.md\"),\n })\n ),\n },\n} satisfies Dictionary;\n\nexport default myMultilingualContent;\n```\n\n此设置允许根据用户的语言偏好动态检索内容。当在 Intlayer 可视化编辑器或 CMS 中使用时,系统将识别内容来自指定的 Markdown 文件,并确保它们保持可编辑状态。\n\n## Intlayer 如何处理文件内容\n\n`file` 函数基于 Node.js 的 `fs` 模块,用于读取指定文件的内容并将其插入到字典中。当与 Intlayer 可视化编辑器或 CMS 结合使用时,Intlayer 可以跟踪字典与文件之间的关系。这使得 Intlayer 能够:\n\n- 识别内容来源于特定文件。\n- 当关联文件被编辑时,自动更新字典内容。\n- 确保文件与字典之间的同步,保持内容的完整性。\n\n## 额外资源\n\n有关在 Intlayer 中配置和使用文件嵌入的更多详细信息,请参阅以下资源:\n\n- [Intlayer CLI 文档](/zh/doc/concept/cli)\n- [React Intlayer 文档](/zh/doc/environment/create-react-app)\n- [Next Intlayer 文档](/zh/doc/environment/nextjs/15)\n- [Markdown 内容文档](/zh/doc/concept/content/markdown)\n- 确保文件与字典之间的同步,保持内容的完整性。\n\n## 额外资源\n\n有关在 Intlayer 中配置和使用文件嵌入的更多详细信息,请参阅以下资源:\n\n- [Intlayer CLI 文档](/zh/doc/concept/cli)\n- [React Intlayer 文档](/zh/doc/environment/create-react-app)\n- [Next Intlayer 文档](/zh/doc/environment/nextjs/15)\n- [Markdown 内容文档](/zh/doc/concept/content/markdown)\n- [翻译内容文档](/zh/doc/concept/content/translation)\n\n这些资源提供了关于文件嵌入、内容管理以及 Intlayer 与各种框架集成的更多见解。\n","description":"了解如何使用 `file` 函数将外部文件嵌入到您的内容字典中。本文档解释了 Intlayer 如何动态链接和管理文件内容。","url":"https://intlayer.org/zh/doc/concept/content/file","datePublished":"2025-03-13","dateModified":"2025-06-29","version":"5.5.10","keywords":"文件, 国际化, 文档, Intlayer, Next.js, JavaScript, React","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"开发者,内容经理"}}
    作者:
    Creation:2025-03-13Last update:2025-06-29

    文件内容 / 在 Intlayer 中嵌入文件

    文件嵌入的工作原理

    在 Intlayer 中,file 函数允许将外部文件内容嵌入到字典中。这种方法确保 Intlayer 识别源文件,实现与 Intlayer 可视化编辑器和 CMS 的无缝集成。与直接使用 importrequirefs 文件读取方法不同,使用 file 会将文件与字典关联,使 Intlayer 能够在文件被编辑时动态跟踪和更新内容。

    设置文件内容

    要在您的 Intlayer 项目中嵌入文件内容,请在内容模块中使用 file 函数。以下示例展示了不同的实现方式。

    **/*.content.ts
    import { file, type Dictionary } from "intlayer";
    
    const myFileContent = {
      key: "my_key",
      content: {
        myFile: file("./path/to/file.txt"),
      },
    } satisfies Dictionary;
    
    export default myFileContent;

    在 React Intlayer 中使用文件内容

    To use embedded file content in a React component, import and use the useIntlayer hook from the react-intlayer package. This retrieves the content from the specified key and allows it to be displayed dynamically.

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const FileComponent: FC = () => {
    const { myFile } = useIntlayer("my_key");
    
    return (
      <div>
        <pre>{myFile}</pre>
      </div>
    );
    };
    
    export default FileComponent;

    多语言 Markdown 示例

    为了支持多语言可编辑的 Markdown 文件,您可以结合使用 filet()md() 来定义 Markdown 内容文件的不同语言版本。

    **/*.content.ts
    import { file, t, md, type Dictionary } from "intlayer";
    
    const myMultilingualContent = {
      key: "my_multilingual_key",
      content: {
        myContent: md(
          t({
            zh: file("src/components/test.zh.md"),
            en: file("src/components/test.en.md"),
            fr: file("src/components/test.fr.md"),
            es: file("src/components/test.es.md"),
          })
        ),
      },
    } satisfies Dictionary;
    
    export default myMultilingualContent;

    此设置允许根据用户的语言偏好动态检索内容。当在 Intlayer 可视化编辑器或 CMS 中使用时,系统将识别内容来自指定的 Markdown 文件,并确保它们保持可编辑状态。

    Intlayer 如何处理文件内容

    file 函数基于 Node.js 的 fs 模块,用于读取指定文件的内容并将其插入到字典中。当与 Intlayer 可视化编辑器或 CMS 结合使用时,Intlayer 可以跟踪字典与文件之间的关系。这使得 Intlayer 能够:

    • 识别内容来源于特定文件。
    • 当关联文件被编辑时,自动更新字典内容。
    • 确保文件与字典之间的同步,保持内容的完整性。

    额外资源

    有关在 Intlayer 中配置和使用文件嵌入的更多详细信息,请参阅以下资源:

    额外资源

    有关在 Intlayer 中配置和使用文件嵌入的更多详细信息,请参阅以下资源:

    这些资源提供了关于文件嵌入、内容管理以及 Intlayer 与各种框架集成的更多见解。