msg
Référence de l’API pour la fonction de chaîne msg()
Vue d’ensemble
La fonction msg sert à marquer et encoder des chaînes en vue de leur traduction.
const encodedString = msg('Bonjour, le monde !');La encoded string doit être transmise au hook useMessages ou à la fonction getMessages pour récupérer les traductions.
Encodage :
msg encode la chaîne d’entrée ; vous ne pouvez donc pas l’utiliser directement dans du JSX ou ailleurs.
Si vous voulez retrouver la chaîne d’origine, vous devez la décoder avec decodeMsg.
Décodage
Pour retrouver la chaîne d’origine, vous devez la décoder avec decodeMsg
import { msg, decodeMsg } from 'gt-next';
const encodedString = msg('Bonjour, le monde !');
const decodedString = decodeMsg(encodedString);
console.log(decodedString); // "Bonjour, le monde !"Références
Paramètres
| Nom | Type | Description | 
|---|---|---|
| content | string | Le texte à encoder. | 
| options? | InlineTranslationOptions | Options de traduction pour personnaliser le comportement de msg. | 
Renvoie
Une encoded string, avec les variables interpolées (le cas échéant) remplacées par leurs valeurs.
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 l’artefact de build de votre application, selon votre configuration. À partir de là, le contenu traduit est délivré à vos utilisateurs. Si une traduction est introuvable, un contenu de secours utilisera le texte original.
Assurez-vous de suivre le guide de déploiement ici.
Développement
Pendant le développement, la fonction msg 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 environnement de développement.
Cela ne se produira pas lors des builds de production, sauf si du contenu est explicitement traduit à la demande,
c.-à-d. en utilisant tx ou <Tx>.
Exemple
Utilisation de base
Vous pouvez utiliser msg pour annoter les chaînes à traduire.
import { msg, useMessages } from 'gt-next';
const encodedString = msg('Bonjour, le monde !');
export default function TranslateGreeting() {
  const m = useMessages();
  return (
    <p>
      {m(encodedString)}
    </p>
  );
}Remarque : « Hello, world! » sera traduit dans la langue préférée de l’utilisateur.
Utilisation des variables
Vous pouvez passer des variables aux traductions du dictionary.
import { msg, useMessages } from 'gt-next';
const encodedString = msg('Bonjour, {name} !', { name: 'Alice' });
export default function TranslateGreeting() {
  const m = useMessages();
  return (
    <p>
      {m(encodedString)}
    </p>
  );
}Remarque : « Alice » ne sera pas traduite dans la langue préférée de l’utilisateur, car il s’agit d’une variable.
Utiliser le format de message ICU
gt-next prend en charge le format de message ICU, ce qui vous permet aussi de formater vos variables.
import { msg, useMessages } from 'gt-next';
const encodedString = 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(encodedString)}
    </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 msgsert à marquer les chaînes à traduire.
- Les chaînes signalées avec msgsont traitées avant l’exécution, lors du processus de build (sauf en développement).
Prochaines étapes
- Consultez useMessagespour traduire des chaînes.
- Consultez getMessagespour traduire des chaînes dans des composants côté serveur asynchrones.
Que pensez-vous de ce guide ?

