Inline Translations

getMessages

Riferimento API per la funzione di traduzione delle stringhe getMessages()

Panoramica

La funzione getMessages è una funzione asincrona che traduce, in fase di build, le stringhe codificate provenienti da msg.

const m = await getMessages();

<p>{  m(encodedString)  }</p>;

Traduzione in fase di build: Le traduzioni di getMessages avvengono in fase di build, prima del deploy dell'app. Puoi passare stringhe codificate da msg, che verranno tradotte nella lingua preferita dell'utente.

Riferimenti

Parametri

Nessuno

Restituisce

Una Promise di una funzione di callback, m, che traduce il contenuto codificato fornito da msg.

Promise<(encodedContent: string, options?: Record<string, any>) => string>
NomeTipoDescrizione
encodedContentstringLa stringa codificata proveniente da msg da tradurre.
options?Record<string, any>Parametri facoltativi per sostituire le variabili nella stringa codificata.

Comportamento

Produzione

Durante il processo di CD, qualsiasi contenuto all’interno di una funzione msg viene tradotto prima della distribuzione dell’applicazione. Questo garantisce tempi di caricamento rapidi per tutte le localizzazioni, ma può tradurre solo contenuti noti in fase di build.

Una volta generate, le traduzioni vengono (1) archiviate nella CDN oppure (2) incluse nell’output di build della tua app, in base alla configurazione. Da lì, il contenuto tradotto viene servito agli utenti. Se una traduzione non viene trovata, si effettuerà il fallback al contenuto originale.

Assicurati di seguire la guida al deploy qui.

Sviluppo

Durante lo sviluppo, la funzione m tradurrà i contenuti on demand. Questo è utile per prototipare l’aspetto della tua app in lingue diverse. Ricorda di aggiungere una Dev API key al tuo ambiente per abilitare questo comportamento.

Durante lo sviluppo potresti riscontrare un ritardo nella traduzione on demand. Questo non accadrà nelle build di produzione, a meno che i contenuti non vengano esplicitamente tradotti on demand, ovvero usando tx o <Tx>.


Esempio

Utilizzo di base

Puoi usare getMessages per tradurre le stringhe codificate in msg.

import { msg, getMessages } from 'gt-next/server';

const encodedGreeting = msg('Ciao, Alice!');

export default async function TranslateGreeting() {
  const m = await getMessages();

  return (
    <p>
      {m(encodedGreeting)}
    </p>
  );
}

Nota: "Alice" verrà tradotta nella lingua preferita dell'utente.

Utilizzo delle variabili

Puoi sostituire le variabili nelle stringhe codificate.

import { msg, getMessages } from 'gt-next/server';

const encodedGreeting = msg('Ciao, {name}!', { name: 'Alice' });

export default async function TranslateGreeting() {
  const m = await getMessages();

  return (
    <p>
      {m(encodedGreeting, { name: 'Bob' })}
    </p>
  );
}

Nota: verrà visualizzato "Ciao, Bob!" — la variabile viene sovrascritta in fase di rendering.

Uso del formato di messaggi ICU

gt-next supporta il formato di messaggi ICU, che consente anche di formattare le variabili.

import { msg, getMessages } from 'gt-next/server';

const encodedMessage = msg('Nel carrello {count, plural, =0 {non ci sono articoli} =1 {c’è 1 articolo} other {ci sono {count} articoli}}', { count: 10 });

export default async function TranslateGreeting() {
  const m = await getMessages();
  return (
    <p>
      {m(encodedMessage)}
    </p>
  );
}

Il formato dei messaggi ICU è un metodo potente per formattare le variabili. Per ulteriori informazioni, consulta la documentazione del formato dei messaggi ICU.


Note

  • La funzione getMessages è una funzione lato server che traduce le stringhe codificate provenienti da msg.
  • Le traduzioni con getMessages avvengono prima dell’esecuzione, durante il processo di build (tranne in sviluppo).

Prossimi passi

  • Consulta useMessages per tradurre sul client stringhe derivate da valori codificati in fase di build.
  • Consulta msg per codificare le stringhe da tradurre.
  • Per le traduzioni a runtime, consulta tx e <Tx>.

Come valuti questa guida?

getMessages