Components

<Tx>

Référence de l'API pour le composant <Tx>

Aperçu

Le composant <Tx> traduit le contenu jsx à l'exécution.

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

Le composant <Tx> prend en charge la traduction de texte brut ainsi que de structures JSX complexes. De plus, il offre des fonctionnalités pour gérer les variables, les pluriels et les traductions spécifiques au contexte. <Tx> fonctionne uniquement côté serveur.

Traduction à l'exécution : Les traductions <Tx> s'effectuent à l'exécution. Cela signifie que la traduction sera effectuée en direct.


Référence

Props

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

Descriptions

PropDescription
childrenLe contenu à traduire. Cela peut inclure du texte brut ou des structures JSX.
contextContexte supplémentaire pour affiner la traduction. Utile pour résoudre des phrases ambiguës.
localeUne locale optionnelle à utiliser pour la traduction. Par défaut, la locale la plus préférée du navigateur qui est prise en charge par votre application sera utilisée.

Comportement

<Tx> traduit le jsx à l'exécution. Cela signifie que les traductions sont effectuées en direct, vous pouvez donc traduire du contenu qui n'est connu qu'à l'exécution. La contrepartie est qu'il y a un délai, car l'attente du chargement d'une traduction à la demande est nettement plus lente.

Pendant le chargement, <Tx> retournera undefined sauf si les langues sont similaires (en-US vs en-GB), bien que ce comportement puisse être personnalisé avec les paramètres de rendu. En cas d'erreur, <Tx> retournera le contenu original.

Notre conseil est de traduire tout ce que vous pouvez au moment de la construction en utilisant <T>, getGT(), ou useGT(), et d'utiliser uniquement les traductions à la demande, comme <Tx> et tx() lorsque cela est nécessaire.

Assurez-vous de suivre le guide de déploiement ici.


Exemples

Utilisation de base

Le composant <Tx> traduira ses enfants à l'exécution.

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

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

Avec des variables

Vous pouvez utiliser le composant <Var> pour marquer des enfants comme des variables. Cela vous permet d'indiquer le contenu qui ne doit pas être traduit.

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

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

Avec des pluriels

Le composant <T> prend également en charge la pluralisation à l'aide du composant <Plural>.

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

Limitations

La fonction <Tx> ne traduit que ses descendants.

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> // sera traduit 

            <ValidTranslation> // sera traduit 
                Hello, world!
            </ValidTranslation>

            <InvalidTranslation /> // ne sera pas traduit
        </Tx>
    );
}

Remarque : Une bonne règle à suivre est que tout contenu qui se trouve littéralement entre les deux <Tx> dans le fichier sera traduit. Vous pouvez toujours ajouter un autre <Tx> pour traduire le contenu qui ne l'est pas, même si l'imbrication des composants <Tx> n'est pas recommandée.


Notes

  • Le composant <Tx> est conçu pour traduire le contenu de votre application à l'exécution.
  • Utilisez le composant <Tx> pour traduire du texte simple ou des structures JSX, y compris des variables et la pluralisation.

Prochaines étapes

Comment trouvez-vous ce guide ?