Indietro

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

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