AccueilBac à sableShowcaseAppDocBlog
    • Englishanglais
      EN
    • русскийrusse
      RU
    • 日本語japonais
      JA
    • françaisfrançais
      FR
    • 한국어coréen
      KO
    • 中文chinois
      ZH
    • españolespagnol
      ES
    • Deutschallemand
      DE
    • العربيةarabe
      AR
    • italianoitalien
      IT
    • British Englishanglais britannique
      EN-GB
    • portuguêsportugais
      PT
    • हिन्दीhindi
      HI
    • Türkçeturc
      TR
    • polskipolonais
      PL
    • Indonesiaindonésien
      ID
    • Tiếng Việtvietnamien
      VI
    • українськаukrainien
      UK
    /
    Filtrer la documentation par framework
    Alt+←
    Pourquoi Intlayer ?
    Commencer
    Concept
    • Comment Intlayer fonctionne
    • Configuration
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Éditeur visuel
    • CMS
    • Intégration CI/CD
    • TraductionPlurielÉnumérationConditionGenreInsertionFichierImbricationMarkdownHTMLRécupération de fonction
    • Fichier par locale
    • Compilateur
    • Remplissage automatique
    • Tests
    • Optimisation de bundle
    Environnement
    • Next.js 14 et App Router
      Next.js 15
      Next.js sans locale URL
      Next.js et Page Router
      Compiler
    • Tanstack Start Solid
    • Astro et React
      Astro et Svelte
      Astro et Vue
      Astro et Solid
      Astro et Preact
      Astro et Lit
      Astro et Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt et Vue
    • Vite et Solid
    • SvelteKit
    • Vite et Preact
    • Vite et Vanilla JS
    • Vite et Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native et Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx et React
    Plugins
    • JSON
    • gettext (.po)
    Extension VS Code
    Agent
    • Serveur MCP
    • Compétences de l’agent
    Versions
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Poser une question
    1. Documentation
    2. Concept
    3. Déclaration de contenu
    4. Pluriel
    Création:2026-05-04Dernière mise à jour:2026-05-04
    Référencez cette doc à votre assistant AI préféré
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix

    Historique des versions

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

    Le contenu de cette page a été traduit à l'aide d'une IA.

    Voir la dernière version du contenu original en anglais
    Modifier cette documentation

    Si vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.

    Lien GitHub de la documentation
    Copier

    Copier le Markdown du doc dans le presse-papiers

    Contenu au Pluriel / Le pluriel dans Intlayer

    Comment fonctionne le pluriel

    Dans Intlayer, le contenu au pluriel est réalisé via la fonction plural, qui mappe les catégories de pluriel CLDR, zero, one, two, few, many, other, à leur contenu correspondant. La catégorie correcte est sélectionnée automatiquement en fonction de la locale active et d'une valeur de compteur, en utilisant l'API intégrée à la plateforme Intl.PluralRules.

    Contrairement à enu, qui sélectionne le contenu en fonction de plages numériques que vous définissez vous-même, plural délègue la sélection aux règles CLDR. C'est ce qui le rend évolutif pour les langues ayant des règles de pluralisation complexes, telles que le russe, le polonais, l'arabe ou le gallois, sans avoir à écrire manuellement de logique de modulo.

    Quand utiliser plural vs enu

    Afficher tout le contenu du tableau

    Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement

    Cas d'utilisation Assistant
    Formes grammaticales de pluriel adaptées à la locale (une pomme / deux pommes / 5 pommes) plural
    Plages numériques personnalisées (<5, >=10) ou compartiments non-CLDR enu

    Si vous ne ciblez que l'anglais (qui n'a que one / other), l'un ou l'autre fonctionne. Pour toute langue ayant des distinctions few / many / two, préférez plural.

    Configuration du contenu au pluriel

    Pour configurer du contenu au pluriel dans votre projet Intlayer, créez un module de contenu qui utilise l'assistant plural. La catégorie other est obligatoire et sert de repli lorsqu'une locale ne définit pas de catégorie plus spécifique.

    **/*.content.ts
    Copier le code

    Copier le code dans le presse-papiers

    import { plural, t, type Dictionary } from "intlayer";
    
    const openingsContent = {
      key: "total_openings",
      content: {
        totalOpenings: t({
          en: plural({
            one: "{{count}} opening",
            other: "{{count}} openings",
          }),
          fr: plural({
            one: "{{count}} poste ouvert",
            other: "{{count}} postes ouverts",
          }),
        }),
      },
    } satisfies Dictionary;
    
    export default openingsContent;

    Les catégories prises en charge sont zero, one, two, few, many, other. Vous n'avez qu'à déclarer les catégories utilisées par votre langue cible, Intlayer revient à other lorsqu'aucune catégorie spécifique ne correspond.

    L'espace réservé {{count}} est automatiquement remplacé par le nombre que vous passez au moment de l'exécution. Vous pouvez également inclure d'autres espaces réservés (voir Espaces réservés personnalisés ci-dessous).

    Utilisation du contenu au pluriel avec React Intlayer

    Pour utiliser du contenu au pluriel dans un composant React, récupérez-le via le hook useIntlayer et appelez-le avec un nombre. La locale active et le nombre sont combinés pour choisir la catégorie CLDR correspondante.

    **/*.tsx
    Copier le code

    Copier le code dans le presse-papiers

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

    Vous pouvez appeler la fonction retournée de deux manières équivalentes :

    tsx
    Copier le code

    Copier le code dans le presse-papiers

    totalOpenings(21); // raccourci : nombre uniquementtotalOpenings({ count: 21 }); // forme explicite

    Espaces réservés personnalisés

    Les chaînes au pluriel peuvent inclure des espaces réservés autres que {{count}}. Passez-les sous forme d'objet aux côtés de count :

    **/*.content.ts
    Copier le code

    Copier le code dans le presse-papiers

    import { plural, type Dictionary } from "intlayer";
    
    const inboxContent = {
      key: "inbox_summary",
      content: {
        summary: plural({
          one: "{{name}}, vous avez {{count}} nouveau message",
          other: "{{name}}, vous avez {{count}} nouveaux messages",
        }),
      },
    } satisfies Dictionary;
    
    export default inboxContent;
    **/*.tsx
    Copier le code

    Copier le code dans le presse-papiers

    const { summary } = useIntlayer("inbox_summary");
    
    summary({ count: 1, name: "Alice" });
    // → "Alice, vous avez 1 nouveau message"
    
    summary({ count: 7, name: "Alice" });
    // → "Alice, vous avez 7 nouveaux messages"

    Les catégories CLDR en un coup d'œil

    Différentes langues utilisent différents sous-ensembles des catégories CLDR. Quelques cas courants :

    Afficher tout le contenu du tableau

    Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement

    Langue Catégories utilisées
    Anglais (en) one, other
    Français (fr) one, many, other
    Russe (ru) one, few, many, other
    Polonais (pl) one, few, many, other
    Arabe (ar) zero, one, two, few, many, other
    Japonais / Chinois other uniquement

    Vous n'avez pas besoin de mémoriser cela, déclarez les catégories pour lesquelles vous avez des traductions, et Intlayer reviendra à other si nécessaire.

    Limitation

    Contrairement aux autres nœuds, le nœud plural ne peut pas encore être imbriqué avec des nœuds enfants.

    Exemple :

    Valide :

    ts
    Copier le code

    Copier le code dans le presse-papiers

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

    Invalide :

    ts
    Copier le code

    Copier le code dans le presse-papiers

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

    Ressources supplémentaires

    Pour des informations plus détaillées sur la configuration et l'utilisation, reportez-vous aux ressources suivantes :

    • Documentation sur l'énumération
    • Documentation sur l'insertion
    • Documentation de l'CLI Intlayer
    • Documentation React Intlayer
    • Documentation Next Intlayer

    Ces ressources offrent des informations supplémentaires sur la configuration et l'utilisation d'Intlayer dans divers environnements et frameworks.

    Traduction
    Énumération
    Alt+→

    Dans cette page

      Les discussions sont anonymes et régulièrement analysées pour traiter les problèmes fréquents. N'hésitez pas à partager vos idées de fonctionnalités, vos retours sur la documentation ou tout ce qui concerne Intlayer, nous utilisons ces retours pour construire notre roadmap et améliorer le produit.

      totalOpenings(21); // raccourci : nombre uniquementtotalOpenings({ count: 21 }); // forme explicite
          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",  }),}),