# gt-next: General Translation Next.js SDK: Le composant T URL: https://generaltranslation.com/fr/docs/next/guides/t.mdx --- title: Le composant T description: Comment internationaliser des composants JSX avec le composant T --- {/* GÉNÉRÉ AUTOMATIQUEMENT : ne modifiez pas directement. Modifiez plutôt le modèle dans content/docs-templates/. */} Le [composant ``](/docs/next/api/components/t) est l’outil principal pour internationaliser le contenu JSX de votre application Next.js. Il encapsule vos éléments JSX et les traduit automatiquement en fonction du paramètre régional de l’utilisateur. **Conseil :** Avec l’[injection automatique de JSX](/docs/cli/features/auto-jsx-injection) activée, le compilateur peut automatiquement encapsuler votre JSX dans des composants de traduction au build. Dans la plupart des cas, vous n’aurez peut-être pas besoin d’ajouter `` manuellement. L’utilisation manuelle de `` reste 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/next/api/components/t) : ```jsx import { T } from 'gt-next'; // Avant function Greeting() { return

Hello, world!

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

Hello, world!

; } ``` Pour le contenu dynamique au sein de [``](/docs/next/api/components/t), utilisez les [composants variables](/docs/next/guides/variables) et les [composants de branchement](/docs/next/guides/branches). ## Utilisation de base Le [composant ``](/docs/next/api/components/t) accepte tout contenu JSX comme 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/next/api/components/t) **uniquement pour du contenu statique** : ```jsx // ✅ Le contenu statique fonctionne

Welcome to our site

// ❌ Le contenu dynamique ne fonctionne pas

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/next/api/components/t) avec du contenu dynamique. Consultez les guides [Composants variables](/docs/next/guides/variables) et [Composants de branchement](/docs/next/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/next/api/components/var), consultez le [guide des composants variables](/docs/next/guides/variables). ## Configuration de production ### Processus de build Intégrez 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 précompilées 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 [Clés API](https://dash.generaltranslation.com/en-US/project/api-keys). ### Considérations relatives à la confidentialité Le contenu des composants [``](/docs/next/api/components/t) est envoyé à l’API GT pour être traduit. Pour les données sensibles, utilisez les [Composants variables](/docs/next/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 `` Regroupez **des blocs de contenu cohérents** — 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 le texte est lié visuellement ou sémantiquement, regroupez-le dans un seul ``. Ne le scindez que si le contenu est réellement indépendant (par exemple, un en-tête ou 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 ont besoin de faire référence au contenu voisin. ## Problèmes fréquents ### Limites des composants [``](/docs/next/api/components/t) ne traduit que les enfants directs, pas 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 T imbriqués ```jsx // ❌ N'imbriquez pas les composants Hello world {/* Ne faites pas ça */} ``` ### Erreurs liées au contenu dynamique La CLI signalera une erreur en cas de contenu dynamique dans [``](/docs/next/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/next/guides/variables) pour prendre en charge les valeurs dynamiques, et le [guide des composants de branchement](/docs/next/guides/branches) pour le contenu conditionnel. ## Étapes suivantes **Voyez-le en action :** Consultez l’[application d’exemple des bases du composant ``](https://github.com/gt-examples/t-component-basics) pour une démonstration en conditions réelles — [aperçu en direct](https://t-component-basics.generaltranslation.dev). * [Guide des composants variables](/docs/next/guides/variables) - Gérez le contenu dynamique dans les traductions JSX * [Guide des composants de branchement](/docs/next/guides/branches) - Ajoutez une logique conditionnelle à vos traductions