# General Translation React SDKs (gt-react, gt-next): Traduire des chaînes
URL: https://generaltranslation.com/fr/docs/react/guides/translating-strings.mdx
---
title: Traduire des chaînes
description: Comment traduire des chaînes indépendantes, comme des libellés et des placeholders, avec le hook useGT de General Translation dans React, Next.js, TanStack Start et React Native.
related:
links:
- /docs/react/guides/translating-jsx
- /docs/react/guides/formatting-variables
- /docs/react/guides/handling-plurals-and-branches
- /docs/react/guides/translating-with-dictionaries
---
Certains textes ne sont pas du JSX — placeholders, `aria-label`, texte alternatif et chaînes que vous construisez dans le code. Utilisez le hook [`useGT`](/docs/react/reference/hooks/use-gt) pour les traduire. Dans les composants App Router asynchrones, utilisez plutôt [`getGT`](/docs/react/nextjs/reference/functions/get-gt).
## Traduire avec `useGT` [#use-gt]
Appelez `useGT` pour obtenir une fonction de traduction, puis passez-lui votre chaîne source. `useGT` renvoie directement cette fonction.
```tsx
import { useGT } from 'gt-react';
function Search() {
const gt = useGT();
return ;
}
```
```tsx title="Composants synchrones"
import { useGT } from 'gt-next';
function Search() {
const gt = useGT();
return ;
}
```
```tsx title="Composants App Router asynchrones"
import { getGT } from 'gt-next/server';
async function Search() {
const gt = await getGT();
return ;
}
```
```tsx
import { useGT } from 'gt-tanstack-start';
function Search() {
const gt = useGT();
return ;
}
```
```tsx
import { useGT } from 'gt-react-native';
function Search() {
const gt = useGT();
return ;
}
```
*Remarque : écrivez `const gt = useGT()` — le hook renvoie directement la fonction, pas un objet. Passez un littéral de chaîne, pas un littéral de gabarit ni une concaténation, pour que la CLI puisse l’extraire.*
## Insérer des variables [#variables]
Utilisez la syntaxe de message ICU avec un espace réservé nommé, puis passez la valeur dans l’objet options. Cela est identique quel que soit le framework.
```tsx
const gt = useGT();
gt('Welcome back, {name}!', { name: user.name });
```
## Ajouter du contexte [#context]
Passez `$context` pour lever l’ambiguïté d’une chaîne, et `$id` pour lui attribuer un identifiant stable.
```tsx
gt('Bank', { $context: 'a bank of a river' });
```
## Réutiliser des chaînes définies en dehors des composants [#shared]
Pour définir des chaînes traduisibles au niveau du module — par exemple pour des constantes, des énumérations ou de la configuration — enregistrez-les avec [`msg`](/docs/react/reference/functions/msg) et résolvez-les avec [`useMessages`](/docs/react/reference/hooks/use-messages). Dans les composants App Router asynchrones, utilisez plutôt [`getMessages`](/docs/react/nextjs/reference/functions/get-messages). Enregistrez la chaîne une seule fois avec `msg`, puis résolvez-la là où vous l’affichez.
```tsx
import { msg, useMessages } from 'gt-react';
const STATUS = { active: msg('Active'), paused: msg('Paused') };
function Badge({ status }: { status: 'active' | 'paused' }) {
const m = useMessages();
return {m(STATUS[status])};
}
```
```tsx title="Composants synchrones"
import { msg, useMessages } from 'gt-next';
const STATUS = { active: msg('Active'), paused: msg('Paused') };
function Badge({ status }: { status: 'active' | 'paused' }) {
const m = useMessages();
return {m(STATUS[status])};
}
```
```tsx title="Composants App Router asynchrones"
import { msg } from 'gt-next';
import { getMessages } from 'gt-next/server';
const STATUS = { active: msg('Active'), paused: msg('Paused') };
async function Badge({ status }: { status: 'active' | 'paused' }) {
const m = await getMessages();
return {m(STATUS[status])};
}
```
```tsx
import { msg, useMessages } from 'gt-tanstack-start';
const STATUS = { active: msg('Active'), paused: msg('Paused') };
function Badge({ status }: { status: 'active' | 'paused' }) {
const m = useMessages();
return {m(STATUS[status])};
}
```
```tsx
import { msg, useMessages } from 'gt-react-native';
const STATUS = { active: msg('Active'), paused: msg('Paused') };
function Badge({ status }: { status: 'active' | 'paused' }) {
const m = useMessages();
return {m(STATUS[status])};
}
```
## Next steps
- /docs/react/guides/translating-jsx
- /docs/react/guides/formatting-variables
- /docs/react/guides/handling-plurals-and-branches
- /docs/react/guides/translating-with-dictionaries