Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Introduire le contenu basé sur la sélection"v9.1.030/07/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi 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 documentationCopier le Markdown du doc dans le presse-papiers
Contenu Basé sur la Sélection / Select dans Intlayer
Comment fonctionne la Sélection (Select)
Dans Intlayer, le contenu basé sur la sélection est réalisé grâce à la fonction select, qui mappe des valeurs de chaîne arbitraires à leur contenu correspondant. C'est l'équivalent d'un message ICU {value, select, …}, ou d'une instruction switch dans le code de votre application.
Utilisez select lorsque le discriminant est une chaîne de caractères libre — un statut, un forfait, une plateforme, un rôle. Pour les autres discriminants, Intlayer fournit des nœuds dédiés :
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Discriminant | Nœud |
|---|---|
| Une quantité | enu() |
| Un booléen | cond() |
| Un genre | gender() |
| Toute autre valeur de chaîne | select() |
Configuration du contenu basé sur la sélection
Pour configurer le contenu basé sur la sélection dans votre projet Intlayer, créez un module de contenu qui inclut vos définitions de sélection. Vous trouverez ci-dessous des exemples dans différents formats.
Copier le code dans le presse-papiers
import { select, type Dictionary } from "intlayer";
const myPostContent = {
key: "my_key",
content: {
publishStatus: select({
draft: "This post is a draft",
published: "This post is live",
scheduled: "This post is scheduled",
fallback: "Unknown status", // Optionnel
}),
},
} satisfies Dictionary;
export default myPostContent;
Si aucunfallbackn'est déclaré, la dernière clé déclarée sera prise comme valeur par défaut lorsque la valeur fournie ne correspond à aucun cas déclaré — le même contrat que pourcond()etgender().
Sécurité du typage
L'argument accepté est déduit des cas déclarés :
- Sans
fallback, seuls les cas déclarés sont acceptés — une faute de frappe est une erreur de typage. - Avec un
fallback, n'importe quelle chaîne de caractères est acceptée (la valeur par défaut couvre les valeurs non correspondantes) tandis que les cas déclarés sont toujours proposés en autocomplétion.
Pourquoi ne pas utiliser un objet simple ?
Il est tentant de déclarer un objet simple et de l'indexer avec la valeur d'exécution :
Copier le code dans le presse-papiers
Le compilateur Intlayer analyse votre code source pour supprimer le contenu inutilisé et minifier les clés restantes. Un accès calculé dynamique (obj[expr]) ne peut pas être résolu de manière statique, de sorte que toute la branche est marquée comme opaque : elle est conservée dans le bundle et ses clés ne sont pas minifiées.
Avec select(), la résolution du cas se produit à l'intérieur d'un appel de fonction plutôt que comme un accès à une propriété. Le compilateur voit un seul accès à un champ statique et optimise le nœud exactement comme enu(), cond() ou gender() :
Copier le code dans le presse-papiers
Utilisation du contenu basé sur la sélection
Pour utiliser le contenu basé sur la sélection dans un composant React, importez et utilisez le hook useIntlayer du package react-intlayer. Ce hook récupère le contenu de la clé spécifiée et vous permet de transmettre une valeur pour sélectionner la sortie appropriée.
Copier le code dans le presse-papiers
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>
{
/* Sortie : This post is a draft */
publishStatus("draft")
}
</p>
<p>
{
/* Sortie : This post is live */
publishStatus("published")
}
</p>
<p>
{
/* Sortie : Unknown status */
publishStatus("Archived")
}
</p>
</div>
);
};
export default PostStatus;
Pour utiliser le contenu basé sur la sélection dans les composants clients Next.js, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
"use client";
import type { FC } from "react";
import { useIntlayer } from "next-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Pour utiliser le contenu basé sur la sélection dans des composants Vue, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
Pour utiliser le contenu basé sur la sélection dans des composants Svelte, récupérez-le via le hook useIntlayer. Le store est accessible avec $. Voici un exemple :
Copier le code dans le presse-papiers
Pour utiliser le contenu basé sur la sélection dans des composants Preact, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
import type { FC } from "preact";
import { useIntlayer } from "preact-intlayer";
const PostStatus: FC = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Pour utiliser le contenu basé sur la sélection dans des composants SolidJS, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
import type { Component } from "solid-js";
import { useIntlayer } from "solid-intlayer";
const PostStatus: Component = () => {
const { publishStatus } = useIntlayer("my_key");
return (
<div>
<p>{publishStatus("draft")}</p>
<p>{publishStatus("published")}</p>
</div>
);
};
export default PostStatus;
Pour utiliser le contenu basé sur la sélection dans des composants Angular, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
Pour utiliser le contenu basé sur la sélection avec vanilla-intlayer, récupérez-le via le hook useIntlayer. Voici un exemple :
Copier le code dans le presse-papiers
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
installIntlayer();
const content = useIntlayer("my_key").onChange((newContent) => {
document.getElementById("status")!.textContent =
newContent.publishStatus("draft");
});
// Rendu initial
document.getElementById("status")!.textContent = content.publishStatus("draft");
Combinaison de Select avec d'autres Nœuds
Chaque cas contient un nœud de contenu complet, de sorte que select se combine avec t(), insert(), md() et les autres :
Copier le code dans le presse-papiers
Copier le code dans le presse-papiers
Migration depuis select d'ICU
Les messages utilisant l'argument select d'ICU sont importés en tant que nœuds select :
Copier le code dans le presse-papiers
devient
Copier le code dans le presse-papiers
Le cas other d'ICU est renommé en fallback, qui est le nom canonique d'Intlayer pour la valeur par défaut de rattrapage. Le deuxième argument enregistre le nom de la variable ICU afin que le message puisse être reconverti exactement dans la même chaîne ICU lors de son exportation.
UnselectICU dont les cas sont des valeurs de genre (male/female/other) est importé en tant que nœudgenderà la place.
Ressources Supplémentaires
Pour des informations plus détaillées sur la configuration et l'utilisation, consultez les ressources suivantes :
Ces ressources offrent des informations approfondies sur la configuration et l'utilisation d'Intlayer dans divers environnements et frameworks.