# 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