\n\n\n```\n\n \n \n\nTo use plural content in Svelte components, retrieve it via the `useIntlayer` hook and call it with a count. The store is accessed with `$`. Here's an example:\n\n```svelte fileName=\"**/*.svelte\"\n\n\n
\n

{$content.totalOpenings(count)}

\n
\n```\n\n
\n \n\nTo use plural content in Preact components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { FC } from \"preact\";\nimport { useIntlayer } from \"preact-intlayer\";\n\nconst OpeningsComponent: FC<{ count: number }> = ({ count }) => {\n const { totalOpenings } = useIntlayer(\"total_openings\");\n\n return (\n
\n

{totalOpenings(count)}

\n
\n );\n};\n\nexport default OpeningsComponent;\n```\n\n
\n \n\nTo use plural content in SolidJS components, retrieve it via the `useIntlayer` hook and call it with a count. 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 OpeningsComponent: Component<{ count: number }> = (props) => {\n const { totalOpenings } = useIntlayer(\"total_openings\");\n\n return (\n
\n

{totalOpenings(props.count)}

\n
\n );\n};\n\nexport default OpeningsComponent;\n```\n\n
\n \n\nTo use plural content in Angular components, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:\n\n```typescript fileName=\"app.component.ts\" codeFormat=\"typescript\"\nimport { Component, Input } from \"@angular/core\";\nimport { useIntlayer } from \"angular-intlayer\";\n\n@Component({\n selector: \"app-openings\",\n template: `\n
\n

{{ content().totalOpenings(count) }}

\n
\n `,\n})\nexport class OpeningsComponent {\n @Input() count!: number;\n\n content = useIntlayer(\"total_openings\");\n}\n```\n\n
\n \n\nTo use plural content with `vanilla-intlayer`, retrieve it via the `useIntlayer` hook and call it with a count. Here's an example:\n\n```typescript fileName=\"**/*.ts\" codeFormat={[\"typescript\", \"esm\"]}\nimport { installIntlayer, useIntlayer } from \"vanilla-intlayer\";\n\ninstallIntlayer();\n\nconst content = useIntlayer(\"total_openings\").onChange((newContent) => {\n document.getElementById(\"openings\")!.textContent =\n newContent.totalOpenings(5);\n});\n\n// Initial render\ndocument.getElementById(\"openings\")!.textContent = content.totalOpenings(5);\n```\n\n \n\n\n## Çoğul İçeriği Ayarlama\n\nIntlayer projenizde çoğul içeriği ayarlamak için `plural` yardımcısını kullanan bir içerik modülü oluşturun. `other` kategorisi zorunludur ve bir yerel daha spesifik bir kategori tanımlamadığında yedek olarak kullanılır.\n\n```typescript fileName=\"**/*.content.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nimport { plural, t, type Dictionary } from \"intlayer\";\n\nconst openingsContent = {\n key: \"total_openings\",\n content: {\n totalOpenings: t({\n en: plural({\n one: \"{{count}} opening\",\n other: \"{{count}} openings\",\n }),\n tr: plural({\n one: \"{{count}} açık pozisyon\",\n other: \"{{count}} açık pozisyon\",\n }),\n }),\n },\n} satisfies Dictionary;\n\nexport default openingsContent;\n```\n\n```json fileName=\"**/*.content.json\" contentDeclarationFormat=\"json\"\n{\n \"$schema\": \"https://intlayer.org/schema.json\",\n \"key\": \"total_openings\",\n \"content\": {\n \"totalOpenings\": {\n \"nodeType\": \"translation\",\n \"translation\": {\n \"en\": {\n \"nodeType\": \"plural\",\n \"plural\": {\n \"one\": \"{{count}} opening\",\n \"other\": \"{{count}} openings\"\n }\n },\n \"tr\": {\n \"nodeType\": \"plural\",\n \"plural\": {\n \"one\": \"{{count}} açık pozisyon\",\n \"other\": \"{{count}} açık pozisyon\"\n }\n }\n }\n }\n }\n}\n```\n\n> Desteklenen kategoriler `zero`, `one`, `two`, `few`, `many`, `other`'dır. Sadece hedef dilinizin kullandığı kategorileri beyan etmeniz yeterlidir, Intlayer, belirli bir kategori eşleşmediğinde `other` kategorisine geri döner.\n>\n> `{{count}}` yer tutucusu, çalışma zamanında ilettiğiniz sayıyla otomatik olarak değiştirilir. Diğer yer tutucuları da dahil edebilirsiniz (aşağıdaki [Özel yer tutucular](#custom-placeholders) bölümüne bakın).\n\n## React Intlayer ile Çoğul İçeriği Kullanma\n\nReact bileşeni içinde çoğul içeriği kullanmak için, `useIntlayer` kancası aracılığıyla içeriği alın ve bir sayıyla çağırın. Aktif yerel ve sayı, eşleşen CLDR kategorisini seçmek için birleştirilir.\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nimport type { FC } from \"react\";\nimport { useIntlayer } from \"react-intlayer\";\n\nconst OpeningsComponent: FC<{ count: number }> = ({ count }) => {\n const { totalOpenings } = useIntlayer(\"total_openings\");\n\n return (\n
\n {/* İngilizcede: */}\n {/* count=0 → \"0 openings\" (other) */}\n {/* count=1 → \"1 opening\" (one) */}\n {/* count=2 → \"2 openings\" (other) */}\n {/* count=21 → \"21 openings\" (other) */}\n

{totalOpenings(count)}

\n
\n );\n};\n\nexport default OpeningsComponent;\n```\n\nDöndürülen işlevi iki eşdeğer şekilde çağırabilirsiniz:\n\n```tsx\ntotalOpenings(21); // kısa yol: sadece sayı\ntotalOpenings({ count: 21 }); // açık form\n```\n\n## Özel yer tutucular\n\nÇoğul dizeler `{{count}}` dışındaki yer tutucuları içerebilir. Bunları `count` ile birlikte nesne formunda iletin:\n\n```typescript fileName=\"**/*.content.ts\" contentDeclarationFormat={[\"typescript\", \"esm\", \"commonjs\"]}\nimport { plural, type Dictionary } from \"intlayer\";\n\nconst inboxContent = {\n key: \"inbox_summary\",\n content: {\n summary: plural({\n one: \"{{name}}, {{count}} yeni mesajınız var\",\n other: \"{{name}}, {{count}} yeni mesajınız var\",\n }),\n },\n} satisfies Dictionary;\n\nexport default inboxContent;\n```\n\n```tsx fileName=\"**/*.tsx\" codeFormat={[\"typescript\", \"esm\"]}\nconst { summary } = useIntlayer(\"inbox_summary\");\n\nsummary({ count: 1, name: \"Alice\" });\n// → \"Alice, 1 yeni mesajınız var\"\n\nsummary({ count: 7, name: \"Alice\" });\n// → \"Alice, 7 yeni mesajınız var\"\n```\n\n## Bir Bakışta CLDR Kategorileri\n\nFarklı diller CLDR kategorilerinin farklı alt kümelerini kullanır. Birkaç yaygın durum:\n\n| Dil | Kullanılan kategoriler |\n| ---------------- | -------------------------------------------- |\n| İngilizce (`en`) | `one`, `other` |\n| Fransızca (`fr`) | `one`, `many`, `other` |\n| Rusça (`ru`) | `one`, `few`, `many`, `other` |\n| Lehçe (`pl`) | `one`, `few`, `many`, `other` |\n| Arapça (`ar`) | `zero`, `one`, `two`, `few`, `many`, `other` |\n| Japonca / Çince | sadece `other` |\n\nBunu ezberlemenize gerek yok, çevirilerinizin olduğu kategorileri beyan edin, Intlayer gerektiğinde `other` kategorisine geri dönecektir.\n\n## Sınırlama\n\nDiğer düğümlere kıyasla, `plural` henüz alt düğümlerle iç içe geçemez.\n\nÖrnek:\n\nGeçerli:\n\n```ts\n totalOpenings: t({\n en: plural({\n one: \"{{count}} opening\",\n other: \"{{count}} openings\",\n }),\n fr: plural({\n one: \"{{count}} offre\",\n other: \"{{count}} offres\",\n }),\n }),\n```\n\nGeçersiz:\n\n```ts\ntotalOpenings: plural({\n one: t({\n en: \"{{count}} opening\",\n fr: \"{{count}} offre\",\n }),\n other: t({\n en: \"{{count}} openings\",\n fr: \"{{count}} offres\",\n }),\n}),\n```\n\n## Ek Kaynaklar\n\nYapılandırma ve kullanım hakkında daha ayrıntılı bilgi için aşağıdaki kaynaklara bakın:\n\n- [Enumeration Belgeleri](/tr/doc/concept/content/enumeration)\n- [Insertion Belgeleri](/tr/doc/concept/content/insertion)\n- [Intlayer CLI Belgeleri](/tr/doc/concept/cli)\n- [React Intlayer Belgeleri](/tr/doc/environment/create-react-app)\n- [Next Intlayer Belgeleri](/tr/doc/environment/nextjs/15)\n\nBu kaynaklar, Intlayer'ın çeşitli ortamlarda ve çerçevelerde kurulumu ve kullanımı hakkında daha fazla bilgi sunar.\n","description":"Çok dilli web sitenizde yerele duyarlı çoğul içeriği (CLDR tabanlı) nasıl tanımlayacağınızı ve kullanacağınızı keşfedin. Projenizi birkaç dakika içinde kurmak için bu çevrimiçi belgelerdeki adımları izleyin.","url":"https://intlayer.org/tr/doc/concept/content/plural","datePublished":"2026-05-04","dateModified":"2026-05-04","version":"8.8.0","keywords":"Çoğul, Çoğullaştırma, CLDR, Uluslararasılaştırma, Belgeler, Intlayer, Next.js, JavaScript, React","license":"https://raw.githubusercontent.com/aymericzip/intlayer/refs/heads/main/LICENSE","audience":{"@type":"Audience","audienceType":"Geliştiriciler, İçerik Yöneticileri"}}
    Yazar:
    Oluşturma:2026-05-04Son güncelleme:2026-05-04

    Çoğul İçerik / Intlayer'da Çoğul

    Çoğul Nasıl Çalışır?

    Intlayer'da çoğul içerik, CLDR çoğul kategorilerini (zero, one, two, few, many, other) ilgili içerikleriyle eşleştiren plural işlevi aracılığıyla elde edilir. Doğru kategori, platformun yerleşik Intl.PluralRules API'si kullanılarak aktif yerele ve bir sayı değerine göre otomatik olarak seçilir.

    Kendi tanımladığınız sayısal aralıklara göre içerik seçen enu işlevinden farklı olarak, plural seçimi CLDR kurallarına devreder. Rusça, Lehçe, Arapça veya Galce gibi karmaşık çoğullaştırma kurallarına sahip diller için, elle modülo mantığı yazmak zorunda kalmadan ölçeklenebilir olmasını sağlayan şey budur.

    Ne Zaman plural vs enu Kullanılmalı?

    To use plural content inside a React component, retrieve it via the useIntlayer hook and call it with a count. The active locale and the count are combined to pick the matching CLDR category.

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
    const { totalOpenings } = useIntlayer("total_openings");
    
    return (
      <div>
        <p>{totalOpenings(count)}</p>
      </div>
    );
    };
    
    export default OpeningsComponent;

    Çoğul İçeriği Ayarlama

    Intlayer projenizde çoğul içeriği ayarlamak için plural yardımcısını kullanan bir içerik modülü oluşturun. other kategorisi zorunludur ve bir yerel daha spesifik bir kategori tanımlamadığında yedek olarak kullanılır.

    **/*.content.ts
    import { plural, t, type Dictionary } from "intlayer";
    
    const openingsContent = {
      key: "total_openings",
      content: {
        totalOpenings: t({
          en: plural({
            one: "{{count}} opening",
            other: "{{count}} openings",
          }),
          tr: plural({
            one: "{{count}} açık pozisyon",
            other: "{{count}} açık pozisyon",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default openingsContent;

    Desteklenen kategoriler zero, one, two, few, many, other'dır. Sadece hedef dilinizin kullandığı kategorileri beyan etmeniz yeterlidir, Intlayer, belirli bir kategori eşleşmediğinde other kategorisine geri döner.

    {{count}} yer tutucusu, çalışma zamanında ilettiğiniz sayıyla otomatik olarak değiştirilir. Diğer yer tutucuları da dahil edebilirsiniz (aşağıdaki Özel yer tutucular bölümüne bakın).

    React Intlayer ile Çoğul İçeriği Kullanma

    React bileşeni içinde çoğul içeriği kullanmak için, useIntlayer kancası aracılığıyla içeriği alın ve bir sayıyla çağırın. Aktif yerel ve sayı, eşleşen CLDR kategorisini seçmek için birleştirilir.

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
      const { totalOpenings } = useIntlayer("total_openings");
    
      return (
        <div>
          {/* İngilizcede:                                 */}
          {/*  count=0  → "0 openings"   (other)           */}
          {/*  count=1  → "1 opening"    (one)             */}
          {/*  count=2  → "2 openings"   (other)           */}
          {/*  count=21 → "21 openings"  (other)           */}
          <p>{totalOpenings(count)}</p>
        </div>
      );
    };
    
    export default OpeningsComponent;

    Döndürülen işlevi iki eşdeğer şekilde çağırabilirsiniz:

    tsx
    totalOpenings(21); // kısa yol: sadece sayıtotalOpenings({ count: 21 }); // açık form

    Özel yer tutucular

    Çoğul dizeler {{count}} dışındaki yer tutucuları içerebilir. Bunları count ile birlikte nesne formunda iletin:

    **/*.content.ts
    import { plural, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox_summary",
      content: {
        summary: plural({
          one: "{{name}}, {{count}} yeni mesajınız var",
          other: "{{name}}, {{count}} yeni mesajınız var",
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    **/*.tsx
    const { summary } = useIntlayer("inbox_summary");
    
    summary({ count: 1, name: "Alice" });
    // → "Alice, 1 yeni mesajınız var"
    
    summary({ count: 7, name: "Alice" });
    // → "Alice, 7 yeni mesajınız var"

    Bir Bakışta CLDR Kategorileri

    Farklı diller CLDR kategorilerinin farklı alt kümelerini kullanır. Birkaç yaygın durum:

    Dil Kullanılan kategoriler
    İngilizce (en) one, other
    Fransızca (fr) one, many, other
    Rusça (ru) one, few, many, other
    Lehçe (pl) one, few, many, other
    Arapça (ar) zero, one, two, few, many, other
    Japonca / Çince sadece other

    Bunu ezberlemenize gerek yok, çevirilerinizin olduğu kategorileri beyan edin, Intlayer gerektiğinde other kategorisine geri dönecektir.

    Sınırlama

    Diğer düğümlere kıyasla, plural henüz alt düğümlerle iç içe geçemez.

    Örnek:

    Geçerli:

    ts
        totalOpenings: t({      en: plural({        one: "{{count}} opening",        other: "{{count}} openings",      }),      fr: plural({        one: "{{count}} offre",        other: "{{count}} offres",      }),    }),

    Geçersiz:

    ts
    totalOpenings: plural({  one: t({    en: "{{count}} opening",    fr: "{{count}} offre",  }),  other: t({    en: "{{count}} openings",    fr: "{{count}} offres",  }),}),

    Ek Kaynaklar

    Yapılandırma ve kullanım hakkında daha ayrıntılı bilgi için aşağıdaki kaynaklara bakın:

    Bu kaynaklar, Intlayer'ın çeşitli ortamlarda ve çerçevelerde kurulumu ve kullanımı hakkında daha fazla bilgi sunar.