\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### 인덱스로 단일 항목 가져오기\n\n```tsx\nconst faq2 = useIntlayer(\"faq\", { item: 2 });\n// → { question: string; answer: string }\n```\n\n### 명시적 로케일로 단일 항목 가져오기\n\n```tsx\nconst faq2Ko = useIntlayer(\"faq\", { item: 2, locale: \"ko\" });\n```\n\n## 일반적인 사용 사례\n\n- FAQ 목록\n- 가격 책정 단계 / 요금제 목록\n- 캐러셀 / 슬라이더용 슬라이드 콘텐츠\n- 단계별 안내 지침\n","description":"런타임 시 인덱스로 선택 가능한 정렬된 번역 항목 컬렉션을 구축하기 위해 Intlayer 콘텐츠 파일에서 item 메타데이터 필드를 사용합니다.","url":"https://intlayer.org/ko/doc/concept/collections","datePublished":"2026-06-12","dateModified":"2026-06-12","version":"9.0.0","keywords":"컬렉션, 콘텐츠 목록, 동적 콘텐츠, Intlayer, 국제화","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"개발자, 콘텐츠 관리자"}}
    작가:
    생성:2026-06-12마지막 업데이트:2026-06-12

    컬렉션

    컬렉션(Collection)은 동일한 사전 키(key)를 공유하지만 서로 다른 item 인덱스를 선언하는 콘텐츠 파일의 집합입니다. Intlayer는 빌드 시 이를 하나의 정렬된 목록으로 병합합니다.

    컬렉션 항목 선언

    각 파일은 하나의 항목을 나타냅니다. item 필드는 목록에서의 해당 위치입니다(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;

    컬렉션 소비하기

    모든 항목

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

    인덱스로 단일 항목 가져오기

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

    명시적 로케일로 단일 항목 가져오기

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

    일반적인 사용 사례

    • FAQ 목록
    • 가격 책정 단계 / 요금제 목록
    • 캐러셀 / 슬라이더용 슬라이드 콘텐츠
    • 단계별 안내 지침