Components

<Tx>

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

Überblick

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

<Tx> // [!code highlight]
    Heute ging ich
    {" zum Laden"}
    <p>
        um <b>einzukaufen</b> einige <i>Lebensmittel</i>.
    </p>
</Tx> 

Die <Tx> Komponente unterstützt die Übersetzung von einfachem Text sowie komplexen JSX-Strukturen. Zusätzlich bietet sie Funktionen zur Handhabung von Variablen, Pluralen und kontextspezifischen Übersetzungen. <Tx> ist nur serverseitig.

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


Referenz

Props

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

Beschreibungen

PropBeschreibung
childrenDer Inhalt, der übersetzt werden soll. Dies kann einfachen Text oder JSX-Strukturen umfassen.
contextZusätzlicher Kontext zur Verfeinerung der Übersetzung. Nützlich zur Auflösung mehrdeutiger Ausdrücke.
localeEine optionale Locale, die für die Übersetzung verwendet werden soll. Standardmäßig wird die bevorzugte Locale des Browsers verwendet, die von Ihrer App unterstützt wird.

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 Kompromiss besteht darin, dass es eine Verzögerung gibt, während auf eine bedarfsgesteuerte Übersetzung gewartet wird, was erheblich 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. Wenn ein Fehler auftritt, gibt <Tx> den Originalinhalt zurück.

Unser Rat ist, alles, was Sie können, zur Build-Zeit zu übersetzen, indem Sie <T>, getGT() oder useGT() verwenden, und nur bei Bedarf bedarfsgesteuerte Übersetzungen wie <Tx> und tx() zu verwenden.

Stellen Sie sicher, dass Sie der Bereitstellungsanleitung hier folgen.


Beispiele

Grundlegende Verwendung

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

SimpleTranslation.jsx
import { Tx } from 'gt-next';
 
export default function Greeting() {
    return (
        <Tx id="greeting"> // [!code highlight]
            Hallo, Welt!
        </Tx> 
    );
}

Mit Variablen

Sie können die <Var>-Komponente verwenden, um Kinder als Variablen zu markieren. Dies ermöglicht es Ihnen, Inhalte zu kennzeichnen, die nicht übersetzt werden sollen.

DynamicGreeting.jsx
import { Tx, Var } from 'gt-next';
 
export default function DynamicGreeting(user) {
    return (
        <Tx>
            Hallo, <Var>{user.name}</Var>! // [!code highlight]
        </Tx>
    );
}

Mit Pluralen

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={<>Du hast einen Artikel.</>}  
                plural={<>Du hast Artikel.</>}  
            />  // [!code highlight]
        </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>Keine Übersetzung</b></div>);
 
export default function Example() {
    return (
        <Tx>
            <div><b>Dies ist gültig!</b></div> // wird übersetzt // [!code highlight]
 
            <ValidTranslation> // wird übersetzt // [!code highlight]
                Hallo, Welt! // [!code highlight]
            </ValidTranslation> // [!code highlight]
 
            <InvalidTranslation /> // wird nicht übersetzt
        </Tx>
    );
}

Hinweis: Eine gute Faustregel ist, dass jeder Inhalt, der wörtlich zwischen den beiden <Tx> in der Datei steht, übersetzt wird. Sie können immer ein weiteres <Tx> hinzufügen, um den Inhalt zu übersetzen, der nicht übersetzt wird, obwohl das Verschachteln von <Tx>-Komponenten nicht empfohlen wird.


Notizen

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

Nächste Schritte

Auf dieser Seite