Contenu dynamique
Bref aperçu de l’utilisation du contenu dynamique dans GT.
Vue d’ensemble
Le contenu dynamique désigne généralement tout contenu susceptible d’évoluer en fonction de l’utilisateur, du contexte, de l’environnement, etc. Cela s’oppose au contenu statique, qui reste identique quel que soit l’utilisateur, le contexte, l’environnement, etc.
« Tx ou pas Tx »
Parfois, nous voulons traduire du contenu dynamique, mais d’autres fois, nous préférons qu’il reste tel quel.
Un bon exemple serait l’adresse e‑mail ou le nom d’un utilisateur. Un autre exemple pourrait être le solde d’un compte bancaire ou le numéro de sécurité sociale d’un utilisateur. Ces éléments (1) n’ont vraisemblablement pas besoin d’être traduits lorsque votre application est affichée dans une autre langue et (2) peuvent varier (dans ce cas, d’un utilisateur à l’autre).
Exemple
import { T, Var } from 'gt-next'
export default function Greeting(name) {
return (
<T id='greeting'>
Bonjour, <Var>{name}</Var> !
</T>
);
}En matière de traduction, cela présente deux avantages :
- Vous n’avez pas à créer une traduction pour chaque nom possible.
- En utilisant
<Var>, nous ne générons qu’une seule traduction qui ressemblerait essentiellement à ceci :¡Hola, ${name}!
- Si nous n’utilisons pas
<Var>, nous devrions effectuer une traduction à la demande pour chaque nom unique :- "¡Hola, Alice!", "¡Hola, Bob!", "¡Hola, Charlie!", "¡Hola, David!", ...
- En utilisant
- Vous n’avez pas non plus à vous inquiéter que les noms eux-mêmes soient traduits en une autre forme (p. ex. "¡Hola, Alicia!", "¡Hola, Roberto!", ...).
Comme vous pouvez le voir, le composant <Var> doit être utilisé pour entourer tout contenu qui doit rester identique, quel que soit le locale.
De cette façon, nous évitons d’avoir à créer des traductions pour chaque valeur possible du contenu dynamique.
En encapsulant des informations privées dans un composant <Var>, vous pouvez vous assurer que ces informations ne sont pas envoyées à l’API de General Translation.
Exceptions
Les exceptions à l’énoncé ci-dessus sont (1) le cas d’un composant <T> imbriqué à l’intérieur d’un composant <Var> (c.-à-d. les children du composant <T> imbriqué seront traduits)
ou (2) lorsque des données sont transmises intentionnellement à notre API par un autre moyen au sein d’un enfant du composant <Var> (p. ex. un appel fetch).
Cependant, ce n’est pas l’utilisation prévue du composant <Var> ni de l’API de General Translation, et cela peut nuire aux temps de chargement et aux performances.
Comment trouvez-vous ce guide ?