Dictionary Translations

useTranslations

Riferimento API per l’hook useTranslations

Panoramica

useTranslations viene usato per accedere alle traduzioni delle stringhe dal dizionario delle traduzioni.

Deve essere utilizzato all'interno di un componente racchiuso da un <GTProvider>.

const d = useTranslations(); // Ottieni la funzione di traduzione
d('greeting.hello'); // passa l'ID per ottenere una traduzione

Per i componenti asincroni, consulta getTranslations.

getTranslations e useTranslations utilizzano un dizionario per memorizzare tutti i contenuti da tradurre. Questo è diverso dall’uso del componente <T> per la traduzione. Se ti interessa usare soltanto i componenti <T> per la traduzione, questo documento non è rilevante.

Riferimenti

Parametri

Prop

Type

Descrizione

PropDescrizione
idUn prefisso opzionale da anteporre a tutte le chiavi di traduzione. Utile per lavorare con valori di dizionari annidati.

Restituisce

Una funzione di traduzione d che, dato un ID, restituisce la versione tradotta della voce corrispondente

(id: string, options?: DictionaryTranslationOptions) => React.ReactNode
NomeTipoDescrizione
idstringL’ID della voce da tradurre
options?DictionaryTranslationOptionsOpzioni di traduzione per personalizzare il comportamento di d.

Esempi

Utilizzo di base del dizionario

Ogni voce del tuo dizionario viene tradotta.

dictionary.jsx
const dictionary = {
  greeting: "Ciao, Bob", 
};
export default dictionary;

Quando vogliamo accedere a queste voci (sul client), chiamiamo useTranslations. Questa restituisce una funzione che accetta la chiave di una traduzione dal dizionario.

TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations(); 
  return (
    <p>
      {d('greeting')} // Ciao Alice // [!code highlight]
    </p>
  );
}

Utilizzo delle variabili

Per passare dei valori, è necessario (1) assegnare un identificatore e (2) fare riferimento a tale identificatore quando si chiama la funzione d.

In questo esempio, usiamo {} per passare variabili alle traduzioni. Nel dizionario, assegniamo l’identificatore {userName}.

dictionary.jsx
const dictionary = {
  greeting: "Ciao, {userName}!", 
};
export default dictionary;
src/server/TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations();
  
  // Ciao, Alice!
  const greetingAlice = d('greeting', { userName: "Alice" }); 

  return (
    <p>
      {greetingAlice}
    </p>
  );
}

Uso dei prefissi

Possiamo usare i prefissi per tradurre solo un sottoinsieme del dizionario.

dictionary.jsx
const dictionary = {
  prefix1: { 
    prefix2: { 
      greeting: "Ciao, Bob",
    }
  }
};
export default dictionary;

Poiché abbiamo aggiunto il valore 'prefix1.prefix2' all’hook useTranslations, tutte le chiavi sono precedute da prefix1.prefix2:

UserDetails.jsx
import { useTranslations } from 'gt-next';

export default function UserDetails() {
  const d = useTranslations('prefix1.prefix2'); 
  return (
    <div>
      <p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
    </div>
  );
}

Note

  • La funzione useTranslations consente di accedere alle traduzioni del dizionario sul lato client.
  • L'hook useTranslations può essere usato solo all'interno di un componente racchiuso da un componente <GTProvider>.

Prossimi passaggi

Come valuti questa guida?

useTranslations