Creation:2026-05-04Last update: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ı?

    Kullanım durumu Yardımcı
    Yerele duyarlı dilbilgisel çoğul formlar (bir elma / iki elma / 5 elma) plural
    Özel sayısal aralıklar (<5, >=10) veya CLDR dışı gruplar enu

    Sadece İngilizceyi hedefliyorsanız (sadece one / other vardır), her ikisi de çalışır. few / many / two ayrımları olan herhangi bir dil için plural tercih edin.

    Ç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.