`;\n }\n ```\n\n \n\n\n### Với ngôn ngữ rõ ràng\n\n```tsx\nconst content = useIntlayer(\"product-copy\", {\n id: \"prod_abc\",\n userId: \"user_123\",\n locale: \"vi\",\n});\n```\n\n### Thiếu trường meta — lỗi compile-time\n\n```ts\n// Lỗi kiểu dữ liệu: thiếu `userId`\nconst content = useIntlayer(\"product-copy\", { id: \"prod_abc\" });\n```\n\n## Chế độ tải (loading mode)\n\nCác bản ghi động thường được tải lười (lazy loaded). Hãy thiết lập `importMode` trên từ điển để kiểm soát điều này:\n\n```ts contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nconst dictionary = {\n key: \"product-copy\",\n importMode: \"fetch\", // hoặc \"dynamic\"\n meta: { id: \"prod_abc\", userId: \"user_123\" },\n content: { … },\n} satisfies Dictionary;\n\nexport default dictionary;\n```\n\nXem [tối ưu hóa gói bundle](/vi/doc/concept/bundle-optimization) để biết thêm chi tiết về chế độ `static`, `dynamic` và `fetch`.\n\n## Các trường hợp sử dụng điển hình\n\n- Nội dung tiếp thị trên mỗi sản phẩm được quản lý trong CMS\n- Nội dung dành riêng cho người dùng hoặc tài khoản cụ thể\n- Bất kỳ nội dung nào được xác định bằng một ID runtime ẩn\n","description":"Sử dụng trường meta trong các tệp nội dung Intlayer để khai báo các bản ghi do CMS quản lý được truy xuất tại runtime bằng ID ẩn, cho phép nội dung động có kiểu dữ liệu mạnh mẽ (strongly-typed) mà không cần đếm tại thời điểm build.","url":"https://intlayer.org/vi/doc/concept/dynamic-records","datePublished":"2026-06-12","dateModified":"2026-06-12","version":"9.0.0","keywords":"Bản Ghi Động, Nội Dung Động, CMS, Nội Dung Runtime, Intlayer, Quốc tế hóa","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)"}}
Một bản ghi động (dynamic record) là một tệp nội dung có danh tính không phải là một chỉ mục tuần tự hoặc một biến thể có tên, mà là một tập hợp tùy ý gồm các cặp khóa-giá trị được khai báo trong trường meta. Intlayer sử dụng các trường đó làm bộ chọn tại runtime, giúp có thể định địa chỉ các bản ghi CMS, nội dung dành riêng cho người dùng hoặc bất kỳ nội dung nào có khóa không được biết tại thời điểm build.
Khai báo các bản ghi động
product-copy.abc.content.ts
Sao chép mã
Sao chép mã vào clipboard
import { t, type Dictionary } from "intlayer";
const dictionary = {
key: "product-copy",
meta: {
id: "prod_abc",
userId: "user_123",
},
content: {
name: t({ en: "Widget Pro", fr: "Widget Pro" }),
description: t({ en: "The best widget.", fr: "Le meilleur widget." }),
},
} satisfies Dictionary;
export default dictionary;