# react-native: Le composant `` URL: https://generaltranslation.com/fr/docs/react-native/guides/t.mdx --- title: Le composant `` description: Comment internationaliser des composants JSX avec le composant `` --- {/* GÉNÉRÉ AUTOMATIQUEMENT : ne modifiez pas ce fichier directement. Modifiez plutôt le modèle dans content/docs-templates/. */} Le [composant ``](/docs/react-native/api/components/t) est l’outil principal pour internationaliser le contenu JSX de votre application React Native. Il encapsule vos éléments JSX et les traduit automatiquement en fonction du paramètre régional de l’utilisateur. **Astuce :** Avec l’[injection JSX automatique](/docs/cli/features/auto-jsx-injection) activée, le compilateur peut automatiquement encapsuler votre JSX dans des composants de traduction au moment du build. Vous n’aurez peut-être pas besoin d’ajouter `` manuellement dans la plupart des cas. L’utilisation manuelle de `` reste néanmoins utile lorsque vous avez besoin d’un contrôle plus fin, par exemple pour définir un `id` ou un `context` spécifique. ## Démarrage rapide Transformez n’importe quel contenu JSX statique en l’entourant de [``](/docs/react-native/api/components/t) : ```jsx import { T } from 'gt-react-native'; // Avant function Greeting() { return

Hello, world!

; } // Après function Greeting() { return

Hello, world!

; } ``` Pour le contenu dynamique au sein de [``](/docs/react-native/api/components/t), utilisez les [composants variables](/docs/react-native/guides/variables) et les [composants de branchement](/docs/react-native/guides/branches). ## Utilisation de base Le [composant ``](/docs/react-native/api/components/t) accepte n’importe quel contenu JSX en tant qu’enfant : ```jsx // Texte simple Welcome to our app // Éléments HTML

Page Title

// JSX imbriqué complexe
Important: Please read carefully.
``` ## Options de configuration ### Ajouter du contexte Fournissez un contexte de traduction pour les termes ambigus : ```jsx Click the toast to dismiss ``` ## Quand utiliser T Utilisez [``](/docs/react-native/api/components/t) **uniquement pour du contenu statique** : ```jsx // ✅ Le contenu statique fonctionne

Welcome to our site

// ❌ Le contenu dynamique pose problème

Hello {username}

Today is {new Date()}

// ✅ Utilisez des composants variables pour le contenu dynamique

Hello {username}

``` Les composants variables et de branchement sont conçus pour être utilisés dans [``](/docs/react-native/api/components/t) afin de gérer le contenu dynamique. Consultez les guides [Composants variables](/docs/react-native/guides/variables) et [Composants de branchement](/docs/react-native/guides/branches) pour en savoir plus. ## Exemples ### Éléments simples ```jsx // Texte simple Hello, world! // Bouton avec texte // Titre avec mise en forme

Welcome

``` ### Composants complexes ```jsx // Menu de navigation // Message d'alerte
Your session expires in 5 minutes
``` ### Avec des variables Vous pouvez utiliser des composants variables pour appliquer un formatage localisé. ```jsx // Combinaison de texte statique et de valeurs dynamiques

Welcome back, {user.name}!

You have {user.friends.length} friends online

Your birthday is {user.birthday}

Your balance is {user.balance}

``` Pour en savoir plus sur le [composant ``](/docs/react-native/api/components/var), consultez le [guide des composants variables](/docs/react-native/guides/variables). ## Configuration de production ### Processus de build Ajoutez la traduction à votre pipeline de build : ```json title="package.json" { "scripts": { "build": "npx gt translate && <...YOUR_BUILD_COMMAND...>" } } ``` ### Comportement en développement et en production * **Développement** : avec une clé API de développement, les traductions se font à la demande au moment du rendu des composants. Vous verrez les traductions en temps réel pendant le développement. * **Production** : toutes les traductions sont générées à l’avance lors de l’étape de build et seront visibles une fois votre application en ligne. Définissez votre clé API de développement dans votre environnement pour activer la traduction en temps réel pendant le développement. Vous pouvez en créer une dans le tableau de bord, sous [API Keys](https://dash.generaltranslation.com/en-US/project/api-keys). ### Considérations relatives à la confidentialité Le contenu des composants [``](/docs/react-native/api/components/t) est envoyé à l’API GT pour être traduit. Pour les données sensibles, utilisez des [composants variables](/docs/react-native/guides/variables) afin de conserver les informations privées en local : ```jsx // Sécurisé - les données sensibles restent en local Welcome back, {username} ``` ## Que mettre dans un seul `` Encapsulez des **blocs de contenu logiques** — du contenu qu’un traducteur lirait et traduirait naturellement comme un tout. ```jsx // ✅ Bien — le contenu associé est regroupé pour donner aux traducteurs le contexte complet

Welcome to Our Platform

Get started in minutes with our simple setup process.

// ✅ Bien — chaque carte est une unité indépendante {features.map((feature) => (

{feature.title}

{feature.description}

))} // ❌ Trop fragmenté — découpe la traduction et perd le contexte

Welcome to Our Platform

Get started in minutes with our simple setup process.

// ❌ Trop large — envelopper toute la page complique la maintenance {/* ...des centaines de lignes de JSX... */} ``` **Règle générale :** si des éléments de texte sont liés visuellement ou sémantiquement, regroupez-les dans un seul ``. Ne les séparez que si le contenu est réellement indépendant (par exemple, un en-tête et un pied de page). Regrouper davantage de contenu dans un seul `` donne plus de contexte aux traducteurs, ce qui produit des traductions plus naturelles — certaines langues restructurent les phrases ou doivent faire référence au contenu alentour. ## Problèmes courants ### Limites des composants [``](/docs/react-native/api/components/t) traduit uniquement les enfants directs, et non le contenu à l’intérieur d’autres composants : ```jsx // ❌ Incorrect - le contenu à l'intérieur des composants ne sera pas traduit function MyComponent() { return

Ceci ne sera pas traduit

; }

Ceci sera traduit

{/* Le contenu à l'intérieur ne sera pas traduit */}
// ✅ Correct - encapsulez chaque composant individuellement function MyComponent() { return

Ceci sera traduit

; }

Ceci sera traduit

``` ### Composants `` imbriqués ```jsx // ❌ N'imbriquez pas les composants Hello world {/* Ne faites pas cela */} ``` ### Erreurs liées au contenu dynamique La CLI renverra une erreur si du contenu dynamique est présent dans [``](/docs/react-native/api/components/t). Encapsulez les valeurs dynamiques dans des composants variables : ```jsx // ❌ Incorrect - le contenu dynamique provoque une erreur

Hello {username}

// ✅ Correct - utiliser des composants variables

Hello {username}

``` Consultez le [Guide des composants variables](/docs/react-native/guides/variables) pour gérer les valeurs dynamiques, et le [Guide des composants de branchement](/docs/react-native/guides/branches) pour gérer le contenu conditionnel. ## Étapes suivantes **Voyez-le en action :** Consultez l’application d’exemple d’initiation au composant [``](https://github.com/gt-examples/t-component-basics) pour une démonstration fonctionnelle — [aperçu en direct](https://t-component-basics.generaltranslation.dev). * [Guide des composants variables](/docs/react-native/guides/variables) - Gérez le contenu dynamique dans vos traductions JSX * [Guide des composants de branchement](/docs/react-native/guides/branches) - Ajoutez une logique conditionnelle à vos traductions