|Labs
Réserver une démoPlateforme
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)CLI historique (v0)
Déconseillé

Lingo.dev Compiler

  • Fonctionnement
  • Configuration
  • Compiler : prise en main rapide

Frameworks

  • Intégration à Next.js
  • Vite + React

Guides

  • Changement de langue
  • Pluralisation automatique
  • Remplacements manuels
  • Modes de build
  • Structure du projet
  • Fournisseurs de traduction
  • Résolveurs de langue personnalisés
  • Outils de développement

Référence

  • Bonnes pratiques
  • Référence de configuration
  • Dépannage
  • Guide de migration
  • Optimisation
  • Formats de sortie

Pluralisation automatique

Alpha

Le Compiler de Lingo.dev est en version alpha. Il est instable, n’est pas recommandé pour une utilisation en production et les API peuvent changer d’une version à l’autre.

Le Compiler de Lingo.dev détecte les formes plurielles dans votre texte JSX et les convertit automatiquement au format ICU MessageFormat. Au lieu d’écrire manuellement les règles de pluriel pour chaque langue, rédigez un texte naturel avec des valeurs numériques, et le Compiler génère les formes plurielles appropriées à l’aide d’un LLM.

Comment ça marche#

1

Le Compiler détecte les motifs numériques

Lors de l’analyse de l’AST, le Compiler identifie les nœuds de texte qui contiennent des nombres interpolés associés à des mots dépendant de la quantité. Par exemple, You have {count} items contient une variable numérique à côté d’un mot dont la forme change selon la quantité.

2

Le LLM identifie les formes plurielles

Un petit LLM rapide (configurable via pluralization.model) analyse le texte et détermine quels mots doivent être fléchis au pluriel. Il génère les catégories de pluriel CLDR adaptées à chaque langue cible.

3

ICU MessageFormat est généré

Le Compiler produit une chaîne ICU MessageFormat qui gère toutes les catégories de pluriel requises par la langue cible.

Exemple#

JSX source :

tsx
<p>You have {count} items in your cart</p>

Sortie générée pour l’anglais :

text
{count, plural, one {You have 1 item in your cart} other {You have # items in your cart}}

Sortie générée pour le russe (qui comporte quatre catégories de pluriel) :

text
{count, plural, one {У вас # товар в корзине} few {У вас # товара в корзине} many {У вас # товаров в корзине} other {У вас # товаров в корзине}}

Catégories de pluriel CLDR#

Les langues n’utilisent pas toutes les mêmes sous-ensembles des six catégories de pluriel CLDR. Le Compiler génère uniquement les catégories requises pour chaque langue cible :

CatégorieDescriptionExemples de langues
zeroQuantité nulleArabe, letton
oneSingulierAnglais, français, allemand, espagnol
twoDuelArabe, hébreu, slovène
fewPaucal / petite quantitéRusse, tchèque, polonais
manyGrande quantitéRusse, arabe, polonais
otherGénéral / par défaut (toujours requis)Toutes les langues

L’anglais utilise one et other. Le russe utilise one, few, many et other. L’arabe utilise les six catégories. Le Compiler gère cela automatiquement pour chaque langue.

Configuration#

La pluralisation est activée par défaut. Configurez-la dans les options du Compiler :

ts
{
  pluralization: {
    enabled: true,
    model: "groq:llama-3.1-8b-instant",
  },
}
OptionTypePar défautDescription
pluralization.enabledbooleantrueActive ou désactive la détection automatique du pluriel.
pluralization.modelstring"groq:llama-3.1-8b-instant"Modèle LLM utilisé pour détecter les formes plurielles. Un modèle plus léger suffit, car cette détection est plus simple que la traduction.

Pour désactiver complètement la pluralisation :

ts
{
  pluralization: {
    enabled: false,
  },
}

Désactiver la pluralisation signifie que le Compiler traduit le texte contenant des nombres comme de simples chaînes. Le résultat traduit peut ne pas être grammaticalement correct pour toutes les quantités dans les langues aux règles de pluriel complexes.

Quand la pluralisation s’applique#

Le Compiler détecte les motifs de pluriel dans les cas suivants :

  • Texte avec variables numériques interpolées : {count} items, {n} messages
  • Texte avec valeurs numériques littérales : You have 5 items (moins courant dans une interface dynamique)

Le Compiler ne pluralise pas :

  • Texte sans référence numérique : Items in cart (aucun nombre sur lequel s’appuyer)
  • Texte où le nombre n’est pas directement lié à un mot dépendant de la quantité

Écrivez naturellement dans votre JSX. Le Compiler et son LLM se chargent de détecter le pluriel et de générer le format ICU — vous n’avez pas besoin d’apprendre la syntaxe d’ICU MessageFormat.

Étapes suivantes#

Référence de la configuration
Toutes les options de pluralisation
Fournisseurs de traduction
Configurez le LLM utilisé pour la traduction
Remplacements manuels
Remplacez certaines traductions lorsque nécessaire
Bonnes pratiques
Quand activer ou désactiver la pluralisation

Cette page vous a-t-elle été utile ?

Max PrilutskiyMax Prilutskiy·Mis à jour il y a 4 mois·3 min de lecture