Strona głównaPiaskownicaPrezentacjaAplikacjaDokumentacjaBlog
    • Englishangielski
      EN
    • русскийrosyjski
      RU
    • 日本語japoński
      JA
    • françaisfrancuski
      FR
    • 한국어koreański
      KO
    • 中文chiński
      ZH
    • españolhiszpański
      ES
    • Deutschniemiecki
      DE
    • العربيةarabski
      AR
    • italianowłoski
      IT
    • British Englishangielski brytyjski
      EN-GB
    • portuguêsportugalski
      PT
    • हिन्दीhindi
      HI
    • Türkçeturecki
      TR
    • polskipolski
      PL
    • Indonesiaindonezyjski
      ID
    • Tiếng Việtwietnamski
      VI
    • українськаukraiński
      UK
    /
    Filtruj dokumenty według frameworka
    Alt+←
    Dlaczego Intlayer?
    Zacząć
    Koncepcja
    • Jak działa Intlayer
    • Konfiguracja
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Edytor wizualny
    • CMS
    • Integracja CI/CD
    • TłumaczenieLiczba mnogaWyliczenieWarunekPłećWstawieniePlikZagnieżdżanieMarkdownHTMLPobieranie funkcji
    • Plik dla każdej lokalizacji
    • Kompilator
    • Automatyczne wypełnianie
    • Testowanie
    • Optymalizacja pakietu
    Środowisko
    • Next.js 14 i App Router
      Next.js 15
      Next.js bez locale URL
      Next.js dan Page Router
      Kompilator
    • Tanstack Start Solid
    • Astro dan React
      Astro dan Svelte
      Astro dan Vue
      Astro dan Solid
      Astro dan Preact
      Astro dan Lit
      Astro dan Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt dan Vue
    • Vite dan Solid
    • SvelteKit
    • Vite dan Preact
    • Vite dan Vanilla JS
    • Vite dan Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native dan Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx dan React
    Plugins
    • JSON
    • gettext (.po)
    Rozszerzenie VS Code
    Agent
    • Serwer MCP
    • Umiejętności agenta
    Wersje
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Zadaj pytanie
    1. Documentation
    2. Koncepcja
    3. Deklaracja zawartości
    4. Liczba mnoga
    Data utworzenia:2026-05-04Ostatnia aktualizacja:2026-05-04
    Prześlij ten dokument do swojego ulubionego asystenta AI
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI

    Historia wersji

    1. "Init history"
      v8.8.04.05.2026

    Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.

    Zobacz ostatnią wersję oryginalnej treści w języku angielskim
    Edytuj tę dokumentację

    Jeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.

    Link do dokumentacji na GitHubie
    Kopiuj

    Kopiuj dokument Markdown do schowka

    Treści w liczbie mnogiej / Liczba mnoga w Intlayer

    Jak działa liczba mnoga

    W Intlayer treści w liczbie mnogiej są realizowane za pomocą funkcji plural, która mapuje kategorie liczby mnogiej CLDR, zero, one, two, few, many, other, do odpowiadającej im treści. Prawidłowa kategoria jest wybierana automatycznie na podstawie aktywnego języka i wartości licznika, przy użyciu wbudowanego w platformę API Intl.PluralRules.

    W przeciwieństwie do enu, który wybiera treści na podstawie zdefiniowanych przez Ciebie zakresów liczbowych, plural deleguje wybór do reguł CLDR. To właśnie sprawia, że jest on skalowalny dla języków o złożonych regułach pluralizacji, takich jak polski, rosyjski, arabski czy walijski, bez konieczności ręcznego pisania logiki modulo.

    Kiedy używać plural vs enu

    Pokaż całą zawartość tabeli

    Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość

    Przypadek użycia Pomocnik
    Formy gramatyczne liczby mnogiej zależne od języka (jedno jabłko / dwa jabłka / 5 jabłek) plural
    Niestandardowe zakresy liczbowe (<5, >=10) lub przedziały spoza CLDR enu

    Jeśli Twoim celem jest tylko język angielski (który ma tylko one / other), oba rozwiązania zadziałają. Dla każdego języka z rozróżnieniem na few / many / two, preferuj plural.

    Konfigurowanie treści w liczbie mnogiej

    Aby skonfigurować treści w liczbie mnogiej w swoim projekcie Intlayer, utwórz moduł treści korzystający z pomocnika plural. Kategoria other jest wymagana i służy jako rezerwowa, gdy dany język nie definiuje bardziej szczegółowej kategorii.

    **/*.content.ts
    Kopiuj kod

    Skopiuj kod do schowka

    import { plural, t, type Dictionary } from "intlayer";
    
    const openingsContent = {
      key: "total_openings",
      content: {
        totalOpenings: t({
          en: plural({
            one: "{{count}} opening",
            other: "{{count}} openings",
          }),
          pl: plural({
            one: "{{count}} wolne miejsce",
            few: "{{count}} wolne miejsca",
            many: "{{count}} wolnych miejsc",
            other: "{{count}} wolnych miejsc",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default openingsContent;

    Obsługiwane kategorie to zero, one, two, few, many, other. Musisz zadeklarować tylko te kategorie, których używa Twój język docelowy, Intlayer powraca do other, gdy żadna konkretna kategoria nie pasuje.

    Symbol zastępczy {{count}} jest automatycznie zastępowany wartością licznika przekazaną w czasie wykonywania. Możesz również dołączyć inne symbole zastępcze (patrz Niestandardowe symbole zastępcze poniżej).

    Używanie treści w liczbie mnogiej z React Intlayer

    Aby użyć treści w liczbie mnogiej w komponencie React, pobierz ją za pomocą hooka useIntlayer i wywołaj z licznikiem. Aktywny język i licznik są łączone, aby wybrać pasującą kategorię CLDR.

    **/*.tsx
    Kopiuj kod

    Skopiuj kod do schowka

    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const OpeningsComponent: FC<{ count: number }> = ({ count }) => {
      const { totalOpenings } = useIntlayer("total_openings");
    
      return (
        <div>
          {/* W języku angielskim:                               */}
          {/*  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;

    Możesz wywołać zwróconą funkcję na dwa równoważne sposoby:

    tsx
    Kopiuj kod

    Skopiuj kod do schowka

    totalOpenings(21); // skrót: tylko liczniktotalOpenings({ count: 21 }); // forma jawna

    Niestandardowe symbole zastępcze

    Ciągi znaków w liczbie mnogiej mogą zawierać symbole zastępcze inne niż {{count}}. Przekaż je w formie obiektu obok count:

    **/*.content.ts
    Kopiuj kod

    Skopiuj kod do schowka

    import { plural, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox_summary",
      content: {
        summary: plural({
          one: "{{name}}, masz {{count}} nową wiadomość",
          few: "{{name}}, masz {{count}} nowe wiadomości",
          many: "{{name}}, masz {{count}} nowych wiadomości",
          other: "{{name}}, masz {{count}} nowych wiadomości",
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    **/*.tsx
    Kopiuj kod

    Skopiuj kod do schowka

    const { summary } = useIntlayer("inbox_summary");
    
    summary({ count: 1, name: "Alice" });
    // → "Alice, masz 1 nową wiadomość"
    
    summary({ count: 7, name: "Alice" });
    // → "Alice, masz 7 nowych wiadomości"

    Kategorie CLDR w skrócie

    Różne języki używają różnych podzbiorów kategorii CLDR. Kilka typowych przypadków:

    Pokaż całą zawartość tabeli

    Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość

    Język Używane kategorie
    Angielski (en) one, other
    Francuski (fr) one, many, other
    Rosyjski (ru) one, few, many, other
    Polski (pl) one, few, many, other
    Arabski (ar) zero, one, two, few, many, other
    Japoński / Chiński tylko other

    Nie musisz tego zapamiętywać, zadeklaruj kategorie, dla których masz tłumaczenia, a Intlayer w razie potrzeby powróci do other.

    Ograniczenie

    W przeciwieństwie do innych węzłów, węzeł plural nie może być jeszcze zagnieżdżany z węzłami podrzędnymi.

    Przykład:

    Prawidłowe:

    ts
    Kopiuj kod

    Skopiuj kod do schowka

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

    Nieprawidłowe:

    ts
    Kopiuj kod

    Skopiuj kod do schowka

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

    Dodatkowe zasoby

    Aby uzyskać bardziej szczegółowe informacje na temat konfiguracji i użytkowania, zapoznaj się z następującymi zasobami:

    • Dokumentacja wyliczeń (Enumeration)
    • Dokumentacja wstawiania (Insertion)
    • Dokumentacja Intlayer CLI
    • Dokumentacja React Intlayer
    • Dokumentacja Next Intlayer

    Zasoby te oferują dalszy wgląd w konfigurację i użytkowanie Intlayer w różnych środowiskach i frameworkach.

    Tłumaczenie
    Wyliczenie
    Alt+→

    Na tej stronie

      Dyskusje są anonimowe i regularnie przeglądane w celu rozwiązania typowych problemów. Podziel się pomysłami na funkcje, opinią o dokumentacji lub czymkolwiek związanym z Intlayer, wykorzystujemy te informacje do kształtowania naszej mapy drogowej i ulepszania produktu.

      totalOpenings(21); // skrót: tylko liczniktotalOpenings({ count: 21 }); // forma jawna
          totalOpenings: t({      en: plural({        one: "{{count}} opening",        other: "{{count}} openings",      }),      fr: plural({        one: "{{count}} offre",        other: "{{count}} offres",      }),    }),
      totalOpenings: plural({  one: t({    en: "{{count}} opening",    fr: "{{count}} offre",  }),  other: t({    en: "{{count}} openings",    fr: "{{count}} offres",  }),}),