Zurück

gt-react@10.15.0

Ernest McCarter avatarErnest McCarter
gt-reactderivetagged-templatei18n

Überblick

Diese Version baut auf der Abkehr von React Context in gt-react und dem t-Makro für getaggte Template-Literale auf. derive() funktioniert jetzt auch im getaggten Template-Literal t. Zuvor konnte derive() nur innerhalb von t()-Funktionsaufrufen verwendet werden:

t("The {subject} is playing.", { subject: derive(getSubject(gender)) })

Jetzt können Sie es direkt in einem Template-Literal schreiben:

t`The ${derive(getSubject(gender))} is playing.`

Wie es funktioniert

derive() weist das CLI-Tool an, alle möglichen Rückgabewerte einer Funktion zu analysieren und für jeden einzelnen einen separaten Übersetzungseintrag zu erstellen. So bleibt die grammatische Kongruenz in verschiedenen Sprachen gewahrt — im Spanischen erfordern zum Beispiel „Der Junge spielt.“ und „Das Mädchen spielt.“ unterschiedliche Artikel (El niño vs. La niña).

Beispiel

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>;
}

Dadurch werden zwei Übersetzungseinträge erstellt:

  • "Der Junge spielt."
  • "Das Mädchen spielt."