Auteur:
    Création:2024-08-11Dernière mise à jour:2025-06-29

    Énumération / Plurielisation

    Comment fonctionne l'énumération

    Dans Intlayer, l'énumération est réalisée grâce à la fonction enu, qui associe des clés spécifiques à leur contenu correspondant. Ces clés peuvent représenter des valeurs numériques, des plages ou des identifiants personnalisés. Lorsqu'elle est utilisée avec React Intlayer ou Next Intlayer, le contenu approprié est automatiquement sélectionné en fonction de la locale de l'application et des règles définies.

    Configuration de l'énumération

    Pour configurer une énumération dans votre projet Intlayer, vous devez créer un module de contenu qui inclut les définitions d'énumération. Voici un exemple d'une énumération simple pour le nombre de voitures :

    **/*.content.ts
    import { enu, type Dictionary } from "intlayer";
    
    const carEnumeration = {
      key: "car_count",
      content: {
        numberOfCar: enu({
          "<-1": "Moins d'une voiture en dessous de moins un",
          "-1": "Moins une voiture",
          "0": "Aucune voiture",
          "1": "Une voiture",
          ">5": "Quelques voitures",
          ">19": "Beaucoup de voitures",
          "fallback": "Valeur de secours", // Optionnel
        }),
      },
    } satisfies Dictionary;
    
    export default carEnumeration;

    Dans cet exemple, enu associe différentes conditions à un contenu spécifique. Lorsqu'il est utilisé dans un composant React, Intlayer peut automatiquement choisir le contenu approprié en fonction de la variable donnée.

    L'ordre de déclaration est important dans les énumérations Intlayer. La première déclaration valide est celle qui sera prise en compte. Si plusieurs conditions s'appliquent, assurez-vous qu'elles sont ordonnées correctement pour éviter un comportement inattendu.
    Si aucun fallback n'est déclaré, la fonction retournera undefined si aucune clé ne correspond.

    Utilisation des énumérations avec React Intlayer

    To use enumeration in a React component, you can leverage the useIntlayer hook from the react-intlayer package. This hook retrieves the correct content based on the specified ID. Here's an example of how to use it:

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const CarComponent: FC = () => {
    const { numberOfCar } = useIntlayer("car_count");
    
    return (
      <div>
        <p>
          {
            numberOfCar(0) // Output: No cars
          }
        </p>
        <p>
          {
            numberOfCar(6) // Output: Some cars
          }
        </p>
        <p>
          {
            numberOfCar(20) // Output: Many cars
          }
        </p>
        <p>
          {
            numberOfCar(0.01) // Output: Fallback value
          }
        </p>
      </div>
    );
    };

    Ressources supplémentaires

    Pour des informations plus détaillées sur la configuration et l'utilisation, consultez les ressources suivantes :

    Ces ressources fournissent des informations complémentaires sur la configuration et l'utilisation d'Intlayer dans différents environnements et avec divers frameworks.

    Using Ordinal Enumeration

    To use this in a React component, call the enumeration with the last digit of the number to get the correct suffix, then pass the full count as the insertion value:

    **/*.tsx
    import type { FC } from "react";
    import { useIntlayer } from "react-intlayer";
    
    const RankingComponent: FC<{ count: number }> = ({ count }) => {
    const { ordinal } = useIntlayer("ranking_component");
    
    // Get the last digit to determine the correct suffix
    const lastDigit = Math.abs(count) % 10;
    
    return (
      <div>
        <p>
          {
            ordinal(lastDigit)({ count }) // e.g., "5th place" for count=5
          }
        </p>
      </div>
    );
    };

    Additional Resources

    For more detailed information on configuration and usage, refer to the following resources:

    These resources provide further insights into the setup and usage of Intlayer in different environments and with various frameworks.