gt-react@10.15.0
Panoramica
Questa release si basa sull'abbandono del contesto React di gt-react e sulla macro t per tagged template. derive() ora funziona all'interno del tagged template literal t. In precedenza, derive() poteva essere usato solo all'interno delle chiamate alla funzione t():
t("The {subject} is playing.", { subject: derive(getSubject(gender)) })Ora puoi scriverlo direttamente in una stringa template:
t`The ${derive(getSubject(gender))} is playing.`Come funziona
derive() indica allo strumento CLI di analizzare tutti i possibili valori restituiti da una funzione e di creare una voce di traduzione separata per ciascuno. In questo modo si preserva l'accordo grammaticale tra le 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>;
}Questo crea due voci di traduzione:
- "Il ragazzo sta giocando."
- "La ragazza sta giocando."