Retour

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

Vue d’ensemble

Cette version s’inscrit dans la continuité de l’abandon du contexte React par gt-react et de la macro de template literal taggé t. derive() fonctionne désormais dans le template literal taggé t. Auparavant, derive() ne pouvait être utilisé qu’au sein d’appels à la fonction t() :

t("The {subject} is playing.", { subject: derive(getSubject(gender)) })

Vous pouvez désormais l’écrire directement dans un template literal :

t`The ${derive(getSubject(gender))} is playing.`

Fonctionnement

derive() indique à l’outil CLI d’analyser toutes les valeurs de retour possibles d’une fonction et de créer une entrée de traduction distincte pour chacune d’elles. Cela permet de préserver l’accord grammatical d’une langue à l’autre — par exemple, en espagnol, « The boy is playing » et « The girl is playing » nécessitent des articles différents (El niño vs La niña).

Exemple

import { t } from "gt-react/browser";
import { derive } from "gt-react";

function getSubject(gender) {
  return gender === "male" ? "boy" : "girl";
}

function Component({ gender }) {
  return <p>{t`The ${derive(getSubject(gender))} is playing.`}</p>;
}

Cela crée deux entrées de traduction :

  • "Le garçon est en train de jouer."
  • "La fille est en train de jouer."

Liens