Le composant <T>
Enveloppe ton contenu dans le composant <T> pour le traduire.
<T>This content will be translated</T>
Props
| Prop | Type | Description |
|---|---|---|
formality | 'informal' | 'formal' | Définit la formalité de la traduction. |
id | string | Tu peux modifier cette utilisation du texte de ta propre initiative. |
lang | Language | Remplace la langue définie sur le MagicTranslateProvider. |
Variables
Enveloppe les valeurs qui changent, comme un nom ou un nombre, dans v() :
import { T, v } from '@magic-translate/react';<T>Hello {v(user.name)}, you have {v(count)} unread messages</T>
Magic Translate traduit le texte autour des valeurs une fois, par Hello {0}, you have {1} unread messages, et les réintègre dans ton application. La traduction est mise en cache et fonctionne pour tous les noms et tous les comptes, et les valeurs elles-mêmes ne sont jamais envoyées à Magic Translate.
Les valeurs sont numérotées dans l'ordre dans lequel elles apparaissent. La traduction peut les déplacer là où la langue en a besoin, par exemple {1} ungelesene Nachrichten für {0}.
v() peut également contenir un composant React, tel qu'un lien :
<T>Read our {v(<Link href="/terms">terms</Link>)} before you continue.</T>
Le texte du lien n'est donc pas traduit. Pour le traduire également, mets-le dans son propre <T> : v(<Link href="/terms"><T>terms</T></Link>).
Sans v(), une valeur est traduite en même temps que le texte qui l'entoure. Cela fonctionne, mais chaque valeur différente est une traduction distincte qui compte pour ton utilisation.
Limites
- Tu ne peux pas insérer de composants React dans le composant
<T>, sauf dansv(). Les éléments HTML simples conviennent (voir l'exemple ci-dessous). - Le contenu d'un composant
<T>ne peut pas dépasser 10 Ko, soit environ 5 000 caractères.
{/* this is OK, since <a> is a plain HTML element */}<T><a href="mailto:info@i42.ch">Please send us an email</a></T>{/* this does NOT work, since <MyButton> is a React component */}<T><MyButton>Click me</MyButton></T>