# General Translation React SDKs (gt-react, gt-next): Traduzione delle stringhe
URL: https://generaltranslation.com/it/docs/react/guides/translating-strings.mdx
---
title: Traduzione delle stringhe
description: Come tradurre stringhe standalone come etichette e segnaposto con l'hook useGT di General Translation in React, Next.js, TanStack Start e 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
---
Non tutto il testo è JSX: segnaposto, `aria-label`, testo alternativo e stringhe che costruisci nel codice. Usa l'hook [`useGT`](/docs/react/reference/hooks/use-gt) per tradurli. Nei componenti async di App Router, usa invece [`getGT`](/docs/react/nextjs/reference/functions/get-gt).
## Traduci con `useGT` [#use-gt]
Chiama `useGT` per ottenere una funzione di traduzione, quindi passale la stringa sorgente. `useGT` restituisce direttamente la funzione.
```tsx
import { useGT } from 'gt-react';
function Search() {
const gt = useGT();
return ;
}
```
```tsx title="Componenti sincroni"
import { useGT } from 'gt-next';
function Search() {
const gt = useGT();
return ;
}
```
```tsx title="Componenti asincroni di App Router"
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 ;
}
```
*Nota: scrivi `const gt = useGT()` — l'hook restituisce direttamente la funzione, non un oggetto. Passa una stringa letterale, non un template literal né una concatenazione, così la CLI potrà estrarla.*
## Inserire variabili [#variables]
Usa la sintassi dei messaggi ICU con un segnaposto denominato e passa il valore nell'oggetto options. Questo vale allo stesso modo per tutti i framework.
```tsx
const gt = useGT();
gt('Welcome back, {name}!', { name: user.name });
```
## Aggiungi contesto [#context]
Passa `$context` per disambiguare una stringa e `$id` per darle un identificatore stabile.
```tsx
gt('Bank', { $context: 'a bank of a river' });
```
## Riutilizza le stringhe definite fuori dai componenti [#shared]
Per definire stringhe traducibili a livello di modulo — ad esempio per costanti, enum o configurazioni — registrale con [`msg`](/docs/react/reference/functions/msg) e risolvile con [`useMessages`](/docs/react/reference/hooks/use-messages). Nei componenti asincroni di App Router, usa invece [`getMessages`](/docs/react/nextjs/reference/functions/get-messages). Registra la stringa una sola volta con `msg`, quindi risolvila nel punto in cui la visualizzi.
```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="Componenti sincroni"
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="Componenti asincroni di App Router"
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