Indietro

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

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."