Atrás

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

Resumen

Esta versión se basa en el abandono de React context por parte de gt-react y en la macro de plantilla etiquetada t. derive() ahora funciona dentro del literal de plantilla etiquetado t. Anteriormente, derive() solo podía usarse dentro de llamadas a la función t():

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

Ahora puedes escribirlo directamente en un template literal:

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

Cómo funciona

derive() indica a la herramienta CLI que analice todos los posibles valores de retorno de una función y cree una entrada de traducción independiente para cada uno. Esto preserva la concordancia gramatical entre idiomas; por ejemplo, en español, "El niño está jugando" y "La niña está jugando" requieren artículos diferentes (El niño vs La niña).

Ejemplo

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>;
}

Esto crea dos entradas de traducción:

  • "El niño está jugando."
  • "La niña está jugando."

Enlaces