gt-react@10.15.0
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."