Inline Translations

getMessages

Référence de l’API pour la fonction de traduction de chaînes getMessages()

Présentation

La fonction getMessages est une fonction asynchrone qui traduit, au moment de la compilation, des encoded strings issues de msg.

const m = await getMessages();

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

Buildtime Translation: Les traductions via getMessages ont lieu au moment du build, avant le déploiement de votre application. Vous pouvez transmettre des encoded strings depuis msg et elles seront traduites dans la langue préférée de l’utilisateur.

Références

Paramètres

Aucun

Renvoie

Une promesse résolue par une fonction de rappel, m, qui traduit le contenu encodé fourni par msg.

Promise<(encodedContent: string, options?: Record<string, any>) => string>
NomTypeDescription
encodedContentstringLe contenu encoded string produit par msg à traduire.
options?Record<string, any>Paramètres facultatifs pour remplacer les variables dans l'encoded string.

Comportement

Production

Pendant le processus de CD (Continuous Delivery/Déploiement continu), tout contenu à l’intérieur d’une fonction msg est traduit avant le déploiement de votre application. Cela garantit des temps de chargement rapides pour toutes les locales, mais ne peut traduire que le contenu connu au moment de la build.

Une fois générées, les traductions sont soit (1) stockées dans le CDN (Content Delivery/Distribution Network), soit (2) intégrées dans le build de votre application, selon votre configuration. À partir de là, le contenu traduit est délivré à vos utilisateurs. Si une traduction est introuvable, le contenu d’origine sera utilisé par défaut.

Assurez-vous de suivre le guide de déploiement ici.

Développement

Pendant le développement, la fonction m traduira le contenu à la demande. C’est utile pour prototyper l’apparence de votre application dans différentes langues. N’oubliez pas d’ajouter une clé d’API de développement à votre environnement pour activer ce comportement.

Vous constaterez un délai lors des traductions à la demande en développement. Cela ne se produira pas dans les builds de production, sauf si le contenu est explicitement traduit à la demande, c.-à-d. en utilisant tx ou <Tx>.


Exemple

Utilisation de base

Vous pouvez utiliser getMessages pour traduire des encoded strings provenant de msg.

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

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

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

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

Remarque : « Alice » sera traduite dans la langue préférée de l’utilisateur.

Utilisation des variables

Vous pouvez remplacer des variables dans des encoded strings.

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

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

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

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

Remarque : cela affichera « Hello, Bob! » — la variable est remplacée au moment du rendu.

Utilisation du format de message ICU

gt-next prend en charge le format de message ICU, ce qui vous permet également de formater vos variables.

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

const encodedMessage = msg('Il y a {count, plural, =0 {aucun article} =1 {un article} other {{count} articles}} dans le panier', { count: 10 });

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

Le format de message ICU est un moyen puissant de mettre en forme vos variables. Pour en savoir plus, consultez la documentation du format de message ICU.


Notes

  • La fonction getMessages est une fonction côté serveur qui traduit des encoded strings provenant de msg.
  • Les traductions avec getMessages ont lieu avant l’exécution, lors du processus de build (sauf en développement).

Prochaines étapes

  • Consultez useMessages pour traduire, côté client, des chaînes à partir de strings encodées au moment du build.
  • Consultez msg pour encoder des strings en vue de leur traduction.
  • Pour les traductions à l’exécution, consultez tx et <Tx>.

Que pensez-vous de ce guide ?

getMessages