gt-react@10.15.0
Panoramica
Questa release si basa sul superamento di React context da parte di gt-react e sulla macro t per template con tag. derive() ora funziona all'interno del template literal con tag t. In precedenza, derive() poteva essere usato solo all'interno delle chiamate di funzione t():
t("The {subject} is playing.", { subject: derive(getSubject(gender)) })Ora puoi scriverlo direttamente all'interno di un template literal:
t`The ${derive(getSubject(gender))} is playing.`Come funziona
derive() fa sì che lo strumento CLI analizzi tutti i possibili valori di ritorno di una funzione e crei una voce di traduzione separata per ciascuno. In questo modo si preserva la concordanza grammaticale nelle diverse lingue — per esempio, in spagnolo, "The boy is playing" e "The girl is playing" richiedono articoli diversi (El niño vs La niña).
Esempio
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>;
}In questo modo si creano due voci di traduzione:
- "The boy is playing."
- "The girl is playing."