\n\n \n ```\n\n \n \n ```svelte fileName=\"FAQ.svelte\"\n \n\n \n ```\n\n \n \n ```tsx fileName=\"FAQ.tsx\"\n import { useIntlayer } from \"preact-intlayer\";\n\n export const FAQ = () => {\n const items = useIntlayer(\"faq\"); // { question: string; answer: string }[]\n\n return (\n \n );\n };\n ```\n\n \n \n ```tsx fileName=\"FAQ.tsx\"\n import { useIntlayer } from \"solid-intlayer\";\n import { For } from \"solid-js\";\n\n export const FAQ = () => {\n const items = useIntlayer(\"faq\"); // { question: string; answer: string }[]\n\n return (\n \n );\n };\n ```\n\n \n \n ```typescript fileName=\"faq.component.ts\"\n import { Component } from \"@angular/core\";\n import { useIntlayer } from \"angular-intlayer\";\n\n @Component({\n selector: \"app-faq\",\n template: `\n \n `,\n })\n export class FAQComponent {\n items = useIntlayer(\"faq\");\n }\n ```\n\n \n \n ```javascript fileName=\"faq.js\"\n import { useIntlayer } from \"vanilla-intlayer\";\n\n const faq = useIntlayer(\"faq\");\n\n faq.forEach((item) => {\n console.log(item.question);\n console.log(item.answer);\n });\n ```\n\n \n\n\n### Un seul élément par index\n\n```tsx\nconst faq2 = useIntlayer(\"faq\", { item: 2 });\n// → { question: string; answer: string }\n```\n\n### Un seul élément avec une locale explicite\n\n```tsx\nconst faq2Fr = useIntlayer(\"faq\", { item: 2, locale: \"fr\" });\n```\n\n## Cas d'utilisation typiques\n\n- Listes de FAQ (Questions Fréquentes)\n- Grilles de tarifs / offres commercialisables\n- Diapositives de carrousel / slider\n- Instructions étape par étape\n","description":"Utilisez le champ de métadonnées item dans les fichiers de contenu d'Intlayer pour créer des collections ordonnées d'éléments localisés sélectionnables par index au moment de l'exécution.","url":"https://intlayer.org/fr/doc/concept/collections","datePublished":"2026-06-12","dateModified":"2026-06-12","version":"9.0.0","keywords":"Collections, Liste de Contenu, Contenu Dynamique, Intlayer, Internationalisation","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Développeurs, Responsables de contenu"}}
    Auteur:
    Création:2026-06-12Dernière mise à jour:2026-06-12

    Collections

    Une collection est un ensemble de fichiers de contenu qui partagent la même clé de dictionnaire (key) mais déclarent chacun un index d'élément (item) différent. Intlayer les fusionne en une seule liste ordonnée au moment de la compilation.

    Déclarer des éléments de collection

    Chaque fichier représente un élément. Le champ item correspond à sa position dans la liste (basée sur 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;

    Consommer une collection

    Tous les éléments

    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>  );};

    Un seul élément par index

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

    Un seul élément avec une locale explicite

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

    Cas d'utilisation typiques

    • Listes de FAQ (Questions Fréquentes)
    • Grilles de tarifs / offres commercialisables
    • Diapositives de carrousel / slider
    • Instructions étape par étape