Components

<Tx>

API-Referenz für die <Tx>-Komponente

Übersicht

Die <Tx> Komponente übersetzt JSX-Inhalte zur Laufzeit.

<Tx>
    Today, I went to
    {" the store"}
    <p>
        to <b>buy</b> some <i>groceries</i>.
    </p>
</Tx> 

Die <Tx> Komponente unterstützt die Übersetzung von einfachem Text sowie komplexen JSX-Strukturen. Zusätzlich bietet sie Funktionen zum Umgang mit Variablen, Pluralformen und kontextabhängigen Übersetzungen. <Tx> ist ausschließlich serverseitig.

Laufzeit-Übersetzung: <Tx> Übersetzungen erfolgen zur Laufzeit. Das bedeutet, die Übersetzung wird live durchgeführt.


Referenz

Eigenschaften

PropTypeDefault
locale??
string
undefined
context??
string
undefined
children?
any
-

Beschreibungen

PropBeschreibung
childrenDer zu übersetzende Inhalt. Dies kann reiner Text oder JSX-Strukturen umfassen.
contextZusätzlicher Kontext, um die Übersetzung zu verfeinern. Hilfreich zur Auflösung von mehrdeutigen Ausdrücken.
localeEine optionale Spracheinstellung für die Übersetzung. Standardmäßig wird die vom Browser bevorzugte und von Ihrer App unterstützte Sprache verwendet.

Verhalten

<Tx> übersetzt JSX zur Laufzeit. Das bedeutet, dass Übersetzungen live durchgeführt werden, sodass Sie Inhalte übersetzen können, die erst zur Laufzeit bekannt sind. Der Nachteil ist, dass es eine Verzögerung gibt, da das Laden einer bedarfsgesteuerten Übersetzung deutlich langsamer ist.

Während des Ladens gibt <Tx> undefined zurück, es sei denn, die Sprachen sind ähnlich (en-US vs en-GB), obwohl dieses Verhalten mit Rendereinstellungen angepasst werden kann. Tritt ein Fehler auf, gibt <Tx> den Originalinhalt zurück.

Unser Rat ist, alles, was möglich ist, zur Build-Zeit mit <T>, getGT() oder useGT() zu übersetzen und bedarfsgesteuerte Übersetzungen wie <Tx> und tx() nur dann zu verwenden, wenn es notwendig ist.

Stellen Sie sicher, dass Sie die Bereitstellungsanleitung hier befolgen.


Beispiele

Grundlegende Verwendung

Die <Tx>-Komponente übersetzt ihre Kinder zur Laufzeit.

SimpleTranslation.jsx
import { Tx } from 'gt-next';

export default function Greeting() {
    return (
        <Tx id="greeting">
            Hello, world!
        </Tx> 
    );
}

Mit Variablen

Du kannst die <Var>-Komponente verwenden, um Kinder als Variablen zu kennzeichnen. Dadurch kannst du Inhalte markieren, die nicht übersetzt werden sollen.

DynamicGreeting.jsx
import { Tx, Var } from 'gt-next';

export default function DynamicGreeting(user) {
    return (
        <Tx>
            Hello, <Var>{user.name}</Var>
        </Tx>
    );
}

Mit Pluralformen

Die <T>-Komponente unterstützt auch die Pluralisierung mit der <Plural>-Komponente.

ItemCount.jsx
import { Tx, Plural } from 'gt-next';

export default function ItemCount({ count }) {
    return (
        <Tx>
            <Plural n={count}  
                singular={<>You have an item.</>}  
                plural={<>You have items.</>}  
            />  
        </Tx>
    );
}

Einschränkungen

Die <Tx>-Funktion übersetzt nur ihre Nachkommen.

Example.jsx
import { Tx } from 'gt-next';

const ValidTranslation = ({ children }) => (<div><b>{children}</b></div>);

const InvalidTranslation = ({ children }) => (<div><b>No translation</b></div>);

export default function Example() {
    return (
        <Tx>
            <div><b>This is valid!</b></div> // wird übersetzt 

            <ValidTranslation> // wird übersetzt 
                Hello, world!
            </ValidTranslation>

            <InvalidTranslation /> // wird nicht übersetzt
        </Tx>
    );
}

Hinweis: Eine gute Faustregel ist, dass jeglicher Inhalt, der buchstäblich zwischen den beiden <Tx> im File steht, übersetzt wird. Du kannst jederzeit ein weiteres <Tx> hinzufügen, um den Inhalt zu übersetzen, der nicht übersetzt wird, allerdings wird das Verschachteln von <Tx>-Komponenten nicht empfohlen.


Hinweise

  • Die <Tx>-Komponente ist dafür konzipiert, Inhalte in Ihrer Anwendung zur Laufzeit zu übersetzen.
  • Verwenden Sie die <Tx>-Komponente, um einfachen Text oder JSX-Strukturen zu übersetzen, einschließlich Variablen und Pluralisierung.

Nächste Schritte

Wie ist dieser Leitfaden?