\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## Cài đặt Nội dung Tệp tin\n\nĐể nhúng nội dung tệp vào dự án Intlayer của bạn, hãy sử dụng hàm `file` trong một module nội dung. Dưới đây là các ví dụ minh họa các cách triển khai khác nhau.\n\n```typescript fileName=\"**/*.content.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nimport { file, type Dictionary } from \"intlayer\";\n\nconst myFileContent = {\n key: \"my_key\",\n content: {\n myFile: file(\"./path/to/file.txt\"),\n },\n} satisfies Dictionary;\n\nexport default myFileContent;\n```\n\n```json5 fileName=\"**/*.content.json\" contentDeclarationFormat=\"json\"\n{\n \"$schema\": \"https://intlayer.org/schema.json\",\n \"key\": \"my_key\",\n \"content\": {\n \"myFile\": {\n \"nodeType\": \"file\",\n \"value\": \"./path/to/file.txt\",\n },\n },\n}\n```\n\n## Sử dụng Nội dung Tệp trong React Intlayer\n\n\n \n\nTo 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.\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { FC } from \"react\";\nimport { useIntlayer } from \"react-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 Next.js Client Components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\n\"use client\";\n\nimport type { FC } from \"react\";\nimport { useIntlayer } from \"next-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 Vue components, retrieve it via the `useIntlayer` hook. Here's an example:\n\n```vue fileName=\"**/*.vue\"\n\n\n\n
\n
{{ myFile }}
\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## Ví dụ Markdown Đa ngôn ngữ\n\nĐể hỗ trợ các tệp Markdown có thể chỉnh sửa đa ngôn ngữ, bạn có thể sử dụng `file` kết hợp với `t()` và `md()` để định nghĩa các phiên bản ngôn ngữ khác nhau của một tệp nội dung 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 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\nCấu hình này cho phép nội dung được truy xuất động dựa trên ngôn ngữ ưu tiên của người dùng. Khi được sử dụng trong Intlayer Visual Editor hoặc CMS, hệ thống sẽ nhận biết rằng nội dung đến từ các tệp Markdown được chỉ định và đảm bảo chúng vẫn có thể chỉnh sửa được.\n\n## Các loại đường dẫn khác nhau\n\nKhi sử dụng hàm `file`, bạn có thể sử dụng các loại đường dẫn khác nhau để chỉ định tệp cần nhúng.\n\n- `file(\"./path/to/file.txt\")` - Đường dẫn tương đối đến tệp hiện tại\n- `file(\"path/to/file.txt\")` - Đường dẫn tương đối đến thư mục gốc của dự án\n- `file(\"/users/username/path/to/file.txt\")` - Đường dẫn tuyệt đối\n\n## Cách Intlayer Xử Lý Nội Dung Tệp\n\nHàm `file` dựa trên module `fs` của Node.js để đọc nội dung của tệp được chỉ định và chèn nó vào từ điển. Khi được sử dụng kết hợp với Intlayer Visual Editor hoặc CMS, Intlayer có thể theo dõi mối quan hệ giữa từ điển và tệp. Điều này cho phép Intlayer:\n\n- Nhận biết rằng nội dung xuất phát từ một tệp cụ thể.\n- Tự động cập nhật nội dung từ điển khi tệp liên kết được chỉnh sửa.\n- Đảm bảo đồng bộ giữa tệp và từ điển, giữ nguyên tính toàn vẹn của nội dung.\n\n## Tài Nguyên Bổ Sung\n\nĐể biết thêm chi tiết về cách cấu hình và sử dụng nhúng tệp trong Intlayer, hãy tham khảo các tài nguyên sau:\n\n- [Tài liệu CLI của Intlayer](/vi/doc/concept/cli)\n- [Tài liệu React Intlayer](/vi/doc/environment/create-react-app)\n- [Tài liệu Next Intlayer](/vi/doc/environment/nextjs/15)\n- [Tài liệu Nội dung Markdown](/vi/doc/concept/content/markdown)\n- [Tài liệu Nội dung Dịch thuật](/vi/doc/concept/content/translation)\n\nNhững tài nguyên này cung cấp thêm những hiểu biết sâu sắc về nhúng tệp, quản lý nội dung, và tích hợp của Intlayer với các framework khác nhau.\n","description":"Tìm hiểu cách nhúng các tệp tin bên ngoài vào từ điển nội dung của bạn bằng cách sử dụng hàm `file`. Tài liệu này giải thích cách Intlayer liên kết và quản lý nội dung tệp tin một cách động.","url":"https://intlayer.org/vi/doc/concept/content/file","datePublished":"2025-03-13","dateModified":"2025-06-29","version":"5.5.10","keywords":"Tệp tin, Quốc tế hóa, Tài liệu, Intlayer, Next.js, JavaScript, React","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Nhà phát triển (Developers), Quản trị nội dung (Content Managers)"}}
Trong Intlayer, hàm file cho phép nhúng nội dung tệp tin bên ngoài vào một từ điển. Cách tiếp cận này đảm bảo Intlayer nhận diện được tệp nguồn, giúp tích hợp liền mạch với Intlayer Visual Editor và CMS.
Tại sao sử dụng file thay vì import, require hoặc fs?
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
Sao chép mã
Sao chép mã vào clipboard
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;
To use embedded file content in Next.js Client Components, retrieve it via the useIntlayer hook. Here's an example:
**/*.tsx
Sao chép mã
Sao chép mã vào clipboard
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const FileComponent: FC = () => {
const { myFile } = useIntlayer("my_key");
return (
<div>
<pre>{myFile}</pre>
</div>
);
};
export default FileComponent;
To use embedded file content in Vue components, retrieve it via the useIntlayer hook. Here's an example:
Để nhúng nội dung tệp vào dự án Intlayer của bạn, hãy sử dụng hàm file trong một module nội dung. Dưới đây là các ví dụ minh họa các cách triển khai khác nhau.
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
Sao chép mã
Sao chép mã vào clipboard
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;
To use embedded file content in Next.js Client Components, retrieve it via the useIntlayer hook. Here's an example:
**/*.tsx
Sao chép mã
Sao chép mã vào clipboard
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const FileComponent: FC = () => {
const { myFile } = useIntlayer("my_key");
return (
<div>
<pre>{myFile}</pre>
</div>
);
};
export default FileComponent;
To use embedded file content in Vue components, retrieve it via the useIntlayer hook. Here's an example:
Để hỗ trợ các tệp Markdown có thể chỉnh sửa đa ngôn ngữ, bạn có thể sử dụng file kết hợp với t() và md() để định nghĩa các phiên bản ngôn ngữ khác nhau của một tệp nội dung Markdown.
Cấu hình này cho phép nội dung được truy xuất động dựa trên ngôn ngữ ưu tiên của người dùng. Khi được sử dụng trong Intlayer Visual Editor hoặc CMS, hệ thống sẽ nhận biết rằng nội dung đến từ các tệp Markdown được chỉ định và đảm bảo chúng vẫn có thể chỉnh sửa được.
Các loại đường dẫn khác nhau
Khi sử dụng hàm file, bạn có thể sử dụng các loại đường dẫn khác nhau để chỉ định tệp cần nhúng.
file("./path/to/file.txt") - Đường dẫn tương đối đến tệp hiện tại
file("path/to/file.txt") - Đường dẫn tương đối đến thư mục gốc của dự án
file("/users/username/path/to/file.txt") - Đường dẫn tuyệt đối
Cách Intlayer Xử Lý Nội Dung Tệp
Hàm file dựa trên module fs của Node.js để đọc nội dung của tệp được chỉ định và chèn nó vào từ điển. Khi được sử dụng kết hợp với Intlayer Visual Editor hoặc CMS, Intlayer có thể theo dõi mối quan hệ giữa từ điển và tệp. Điều này cho phép Intlayer:
Nhận biết rằng nội dung xuất phát từ một tệp cụ thể.
Tự động cập nhật nội dung từ điển khi tệp liên kết được chỉnh sửa.
Đảm bảo đồng bộ giữa tệp và từ điển, giữ nguyên tính toàn vẹn của nội dung.
Tài Nguyên Bổ Sung
Để biết thêm chi tiết về cách cấu hình và sử dụng nhúng tệp trong Intlayer, hãy tham khảo các tài nguyên sau: