HomeAmbiente di testVetrinaAppDocBlog
    • Englishinglese
      EN
    • русскийrusso
      RU
    • 日本語giapponese
      JA
    • françaisfrancese
      FR
    • 한국어coreano
      KO
    • 中文cinese
      ZH
    • españolspagnolo
      ES
    • Deutschtedesco
      DE
    • العربيةarabo
      AR
    • italianoitaliano
      IT
    • British Englishinglese britannico
      EN-GB
    • portuguêsportoghese
      PT
    • हिन्दीhindi
      HI
    • Türkçeturco
      TR
    • polskipolacco
      PL
    • Indonesiaindonesiano
      ID
    • Tiếng Việtvietnamita
      VI
    • українськаucraino
      UK
    /
    Filtra la documentazione per framework
    Alt+←
    Perché Intlayer?
    Iniziare
    Concetto
    • Come funziona Intlayer
    • Configurazione
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Editor visuale
    • CMS
    • Integrazione CI/CD
    • TraduzionePluraleEnumerazioneCondizioneGenereInserimentoFileAnnidamentoMarkdownHTMLRecupero funzione
    • File per locale
    • Compilatore
    • Compilazione automatica
    • Test
    • Ottimizzazione del bundle
    Ambiente
    • Next.js 14 e App Router
      Next.js 15
      Next.js senza locale URL
      Next.js e Page Router
      Compiler
    • Tanstack Start Solid
    • Astro e React
      Astro e Svelte
      Astro e Vue
      Astro e Solid
      Astro e Preact
      Astro e Lit
      Astro e Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt e Vue
    • Vite e Solid
    • SvelteKit
    • Vite e Preact
    • Vite e Vanilla JS
    • Vite e Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native e Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx e React
    Plugins
    • JSON
    • gettext (.po)
    Estensione VS Code
    Agente
    • Server MCP
    • Abilità dell’agente
    Versioni
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Fai una domanda
    1. Documentation
    2. Concetto
    3. Dichiarazione dei contenuti
    4. Plurale
    Creazione:2026-05-04Ultimo aggiornamento:2026-05-04
    Riferimento a questa documentazione al tuo assistente AI preferito
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Pose una domanda e ottieni un riassunto del documento facendo riferimento a questa pagina e al provider AI di tua scelta

    Cronologia delle versioni

    1. "Init history"
      v8.8.004/05/2026

    Il contenuto di questa pagina è stato tradotto con un'IA.

    Vedi l'ultima versione del contenuto originale in inglese
    Modifica questa documentazione

    Se hai un’idea per migliorare questa documentazione, non esitare a contribuire inviando una pull request su GitHub.

    Collegamento GitHub alla documentazione
    Copia

    Copia il Markdown del documento nella porta-documenti

    Contenuto Plurale / Il plurale in Intlayer

    Come funziona il plurale

    In Intlayer, il contenuto plurale viene ottenuto tramite la funzione plural, che mappa le categorie plurali CLDR, zero, one, two, few, many, other, al loro contenuto corrispondente. La categoria corretta viene selezionata automaticamente in base alla locale attiva e a un valore di conteggio, utilizzando l'API integrata nella piattaforma Intl.PluralRules.

    A differenza di enu, che seleziona il contenuto in base a intervalli numerici definiti da te, plural delega la selezione alle regole CLDR. Questo è ciò che lo rende scalabile per lingue con regole di pluralizzazione complesse, come il russo, il polacco, l'arabo o il gallese, senza dover scrivere manualmente la logica del modulo.

    Quando usare plural vs enu

    Mostra tutto il contenuto della tabella

    Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro

    Caso d'uso Helper
    Forme plurali grammaticali basate sulla locale (una mela / due mele / 5 mele) plural
    Intervalli numerici personalizzati (<5, >=10) o bucket non CLDR enu

    Se ti rivolgi solo all'inglese o all'italiano (che hanno solo one / other), entrambi funzionano. Per qualsiasi lingua con distinzioni few / many / two, preferisci plural.

    Configurazione del contenuto plurale

    Per configurare il contenuto plurale nel tuo progetto Intlayer, crea un modulo di contenuto che utilizzi l'helper plural. La categoria other è obbligatoria e viene utilizzata come fallback quando una locale non definisce una categoria più specifica.

    **/*.content.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { plural, t, type Dictionary } from "intlayer";
    
    const openingsContent = {
      key: "total_openings",
      content: {
        totalOpenings: t({
          en: plural({
            one: "{{count}} opening",
            other: "{{count}} openings",
          }),
          it: plural({
            one: "{{count}} posizione aperta",
            other: "{{count}} posizioni aperte",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default openingsContent;

    Le categorie supportate sono zero, one, two, few, many, other. Devi solo dichiarare le categorie utilizzate dalla tua lingua di destinazione, Intlayer torna a other quando nessuna categoria specifica corrisponde.

    Il segnaposto {{count}} viene sostituito automaticamente con il conteggio passato in fase di esecuzione. Puoi includere anche altri segnaposto (vedi Segnaposto personalizzati sotto).

    Utilizzo del contenuto plurale con React Intlayer

    Per utilizzare il contenuto plurale all'interno di un componente React, recuperalo tramite l'hook useIntlayer e chiamalo con un conteggio. La locale attiva e il conteggio vengono combinati per scegliere la categoria CLDR corrispondente.

    **/*.tsx
    Copiare il codice

    Copiare il codice nella clipboard

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

    Puoi chiamare la funzione restituita in due modi equivalenti:

    tsx
    Copiare il codice

    Copiare il codice nella clipboard

    totalOpenings(21); // abbreviato: solo conteggiototalOpenings({ count: 21 }); // forma esplicita

    Segnaposto personalizzati

    Le stringhe plurali possono includere segnaposto diversi da {{count}}. Passali sotto forma di oggetto insieme a count:

    **/*.content.ts
    Copiare il codice

    Copiare il codice nella clipboard

    import { plural, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox_summary",
      content: {
        summary: plural({
          one: "{{name}}, hai {{count}} nuovo messaggio",
          other: "{{name}}, hai {{count}} nuovi messaggi",
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    **/*.tsx
    Copiare il codice

    Copiare il codice nella clipboard

    const { summary } = useIntlayer("inbox_summary");
    
    summary({ count: 1, name: "Alice" });
    // → "Alice, hai 1 nuovo messaggio"
    
    summary({ count: 7, name: "Alice" });
    // → "Alice, hai 7 nuovi messaggi"

    Categorie CLDR a colpo d'occhio

    Lingue diverse utilizzano diversi sottoinsiemi delle categorie CLDR. Alcuni casi comuni:

    Mostra tutto il contenuto della tabella

    Apri la tabella in una finestra modale per visualizzare tutti i dati in modo chiaro

    Lingua Categorie utilizzate
    Inglese (en) one, other
    Francese (fr) one, many, other
    Russo (ru) one, few, many, other
    Polacco (pl) one, few, many, other
    Arabo (ar) zero, one, two, few, many, other
    Giapponese / Cinese solo other

    Non è necessario memorizzarlo, dichiara le categorie per le quali hai traduzioni e Intlayer tornerà a other quando necessario.

    Limitazione

    A differenza di altri nodi, il nodo plural non può ancora essere nidificato con nodi figli.

    Esempio:

    Valido:

    ts
    Copiare il codice

    Copiare il codice nella clipboard

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

    Non valido:

    ts
    Copiare il codice

    Copiare il codice nella clipboard

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

    Risorse aggiuntive

    Per informazioni più dettagliate sulla configurazione e l'utilizzo, fare riferimento alle seguenti risorse:

    • Documentazione sull'enumerazione
    • Documentazione sull'inserimento
    • Documentazione della CLI Intlayer
    • Documentazione React Intlayer
    • Documentazione Next Intlayer

    Queste risorse offrono ulteriori approfondimenti sulla configurazione e l'utilizzo di Intlayer in vari ambienti e framework.

    Traduzione
    Enumerazione
    Alt+→

    In questa pagina

      Le discussioni sono anonime e vengono regolarmente esaminate per affrontare problemi comuni. Sentiti libero di condividere idee per nuove funzionalità, feedback sulla documentazione o qualsiasi cosa relativa a Intlayer, utilizziamo questi input per definire la nostra roadmap e migliorare il prodotto.

      totalOpenings(21); // abbreviato: solo conteggiototalOpenings({ count: 21 }); // forma esplicita
          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",  }),}),