Tác giả:
    Ngày tạo:2026-06-12Cập nhật lần cuối:2026-06-12

    Bộ Sưu Tập

    Một bộ sưu tập (collection) là một tập hợp các tệp nội dung chia sẻ cùng một khóa từ điển (key) nhưng mỗi tệp khai báo một chỉ mục mục (item) khác nhau. Intlayer hợp nhất chúng thành một danh sách có thứ tự duy nhất tại thời điểm build.

    Khai báo các mục trong bộ sưu tập

    Mỗi tệp đại diện cho một mục. Trường item là vị trí của nó trong danh sách (bắt đầu bằng 1).

    faq.1.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const dictionary = {
      key: "faq",
      item: 1,
      content: {
        question: t({ en: "What is Intlayer?", fr: "Qu'est-ce qu'Intlayer ?" }),
        answer: t({ en: "An i18n toolkit.", fr: "Une boîte à outils i18n." }),
      },
    } satisfies Dictionary;
    
    export default dictionary;
    faq.2.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const dictionary = {
      key: "faq",
      item: 2,
      content: {
        question: t({ en: "Is it free?", fr: "Est-ce gratuit ?" }),
        answer: t({ en: "Yes, open-source.", fr: "Oui, open-source." }),
      },
    } satisfies Dictionary;
    
    export default dictionary;

    Sử dụng bộ sưu tập

    Tất cả các mục

    FAQ.tsx
    import { useIntlayer } from "react-intlayer";export const FAQ = () => {  const items = useIntlayer("faq"); // { question: string; answer: string }[]  return (    <ul>      {items.map((item, index) => (        <li key={index}>          <strong>{item.question}</strong>          <p>{item.answer}</p>        </li>      ))}    </ul>  );};

    Mục đơn theo chỉ mục (index)

    tsx
    const faq2 = useIntlayer("faq", { item: 2 });// → { question: string; answer: string }

    Mục đơn với ngôn ngữ (locale) rõ ràng

    tsx
    const faq2Vi = useIntlayer("faq", { item: 2, locale: "vi" });

    Các trường hợp sử dụng điển hình

    • Danh sách Câu hỏi thường gặp (FAQ)
    • Các gói định giá
    • Các slide trình chiếu / carousel
    • Hướng dẫn từng bước