useMessages
Référence de l’API pour la fonction de traduction de chaînes useMessages()
Aperçu
La fonction useMessages est un hook qui traduit des encoded string provenant de msg lors de la compilation.
const m = useMessages();
<p>{ m(encodedString) }</p>;Buildtime Translation :
Les traductions effectuées par useMessages se font au moment du build, avant le déploiement de votre application.
Vous pouvez transmettre des chaînes encodées depuis msg, et elles seront traduites dans la langue préférée de l’utilisateur.
Références
Paramètres
Aucun
Renvoie
Une fonction de rappel, m, qui traduit le contenu encodé fourni depuis msg.
(encodedContent: string, options?: Record<string, any>) => string| Nom | Type | Description |
|---|---|---|
encodedContent | string | La chaîne encodée provenant de msg à traduire. |
options? | Record<string, any> | Paramètres optionnels pour remplacer des variables dans la chaîne encodée. |
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 permet de traduire que le contenu connu au moment du build.
Une fois générées, les traductions sont soit (1) stockées dans le CDN (réseau de distribution de contenu), soit (2) incluses dans les artefacts de build de votre application, selon votre configuration. À partir de là, le contenu traduit est diffusé à vos utilisateurs. Si une traduction est introuvable, le contenu original sera utilisé en secours.
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 useMessages pour Traduire des encoded string à partir 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 des variables dans des chaînes codées.
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 « Hello, Bob! » — la variable est remplacée au moment du rendu.
Utilisation du format de message ICU
gt-react prend en charge le format de message ICU, ce qui vous permet également de formater 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 moyen puissant de mettre en forme vos variables. Pour en savoir plus, consultez la documentation du format de message ICU.
Notes
- La fonction
useMessagesest un hook qui Traduire des encoded string depuismsg. - Les traductions avec
useMessagessont effectuées avant l’exécution, durant le processus de build (sauf en développement).
Prochaines étapes
- Voir
getMessagespour des traductions asynchrones de chaînes à partir de chaînes encodées lors de la compilation. - Voir
msgpour encoder des chaînes en vue de leur traduction. - Pour les traductions à l’exécution, voir
txet<Tx>.
Comment trouvez-vous ce guide ?