useMessages
Référence de l’API pour la fonction de traduction de chaînes useMessages()
Vue d’ensemble
La fonction useMessages est un hook qui traduit, à la compilation, des encoded strings générées par msg.
const m = useMessages();
<p>{  m(encodedString)  }</p>;Buildtime Translation :
Les traductions via useMessages s’effectuent au moment du build, avant le déploiement de votre application.
Vous pouvez passer 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
Valeur de retour
Une fonction de rappel, m, qui traduit le contenu encodé fourni par msg.
(encodedContent: string, options?: Record<string, any>) => string| Nom | Type | Description | 
|---|---|---|
| encodedContent | string | Le contenu encoded string produit par msgà traduire. | 
| options? | Record<string, any> | Paramètres facultatifs pour remplacer des 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 compilation.
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 distribué à vos utilisateurs. Si une traduction est introuvable, un contenu de secours s’applique et le texte d’origine est utilisé.
Assurez-vous de suivre le guide de déploiement ici.
Développement
En développement, la fonction m traduit 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 observerez un léger 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 useMessages pour traduire des encoded strings provenant de msg.
import { msg, useMessages } from 'gt-react';
const encodedGreeting = msg('Bonjour, Alice !');
export default function TranslateGreeting() {
  const m = useMessages();
  return (
    <p>
      {m(encodedGreeting)}
    </p>
  );
}Remarque : « Alice » sera traduit dans la langue préférée de l’utilisateur.
Utiliser des variables
Vous pouvez remplacer les variables dans les encoded strings.
import { msg, useMessages } from 'gt-react';
const encodedGreeting = msg('Bonjour, {name} !', { name: 'Alice' });
export default function TranslateGreeting() {
  const m = useMessages();
  return (
    <p>
      {m(encodedGreeting, { name: 'Bob' })}
    </p>
  );
}Remarque : cela affichera "Bonjour, Bob !" — la variable est remplacée au moment du rendu.
Utiliser le format de message ICU
gt-react prend en charge le format de message ICU, ce qui vous permet également de mettre en forme vos variables.
import { msg, useMessages } from 'gt-react';
const encodedMessage = msg('Il y a {count, plural, =0 {aucun article} =1 {un article} other {{count} articles}} dans le panier', { count: 10 });
export default function TranslateGreeting() {
  const m = useMessages();
  return (
    <p>
      {m(encodedMessage)}
    </p>
  );
}Le format de message ICU est un outil puissant pour mettre en forme vos variables. Pour en savoir plus, consultez la documentation du format de message ICU.
Notes
- La fonction useMessagesest un hook qui traduit des encoded strings provenant demsg.
- Avec useMessages, la traduction des chaînes s’effectue avant l’exécution, lors du processus de build (sauf en développement).
Prochaines étapes
- Voir getMessagespour traduire de façon asynchrone des chaînes à partir d’encoded strings lors du build.
- Voir msgpour encoder des chaînes en vue de leur traduction.
- Pour les traductions à l’exécution, voir txet<Tx>.
Que pensez-vous de ce guide ?

