Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Historique initial"v5.5.1029/06/2025
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Documentation : Fonction t dans hono-intlayer
La fonction t dans le paquet hono-intlayer est l'utilitaire central pour fournir des réponses localisées dans votre application Hono. Elle simplifie l'internationalisation (i18n) en sélectionnant dynamiquement le contenu en fonction de la langue préférée de l'utilisateur.
Aperçu
La fonction t est utilisée pour définir et récupérer des traductions pour un ensemble donné de langues. Elle détermine automatiquement la langue appropriée à renvoyer en fonction des paramètres de requête du client, tels que l'en-tête Accept-Language. Si la langue préférée est indisponible, elle se replie gracieusement sur la langue par défaut spécifiée dans votre configuration.
Caractéristiques Clés
- Localisation Dynamique : Sélectionne automatiquement la traduction la plus appropriée pour le client.
- Repli sur la Langue par Défaut : Revient à une langue par défaut si la langue préférée du client n'est pas disponible, assurant la continuité de l'expérience utilisateur.
- Léger et Rapide : Conçu pour des applications haute performance, garantissant un impact minimal.
- Support du Mode Strict : Impose le respect strict des langues déclarées pour un comportement fiable.
Signature de la Fonction
Copier le code dans le presse-papiers
t(translations: Record<string, string>): string;Paramètres
translations: Un objet dont les clés sont des codes de langue (ex:en,fr,es-MX) et les valeurs sont les chaînes de caractères traduites correspondantes.
Retour
- Une chaîne de caractères représentant le contenu dans la langue préférée du client.
Chargement du Gestionnaire de Requêtes d'Internationalisation
Pour garantir que la fonctionnalité d'internationalisation fournie par hono-intlayer fonctionne correctement, vous devez charger le middleware d'internationalisation au début de votre application Hono. Cela active la fonction t et assure une gestion appropriée de la détection de la langue et de la traduction.
Placez le middleware app.use("*", intlayer()) avant toutes les routes de votre application pour vous assurer que toutes les routes bénéficient de l'internationalisation :
Copier le code dans le presse-papiers
import { Hono } from "hono";
import { intlayer } from "hono-intlayer";
const app = new Hono();
// Charger le gestionnaire de requêtes d'internationalisation
app.use("*", intlayer());
// Définissez vos routes après avoir chargé le middleware
app.get("/", (c) => {
return c.text(
t({
en: "Hello, World!",
fr: "Bonjour le monde !",
es: "¡Hola, Mundo!",
})
);
});Pourquoi c'est Requis
- Détection de la Langue : Le middleware
intlayertraite les requêtes entrantes pour détecter la langue préférée de l'utilisateur en fonction des en-têtes, cookies ou autres méthodes configurées. - Contexte de Traduction : Configure le contexte nécessaire pour que la fonction
tfonctionne correctement, garantissant que les traductions sont renvoyées dans la bonne langue. - Prévention des Erreurs : Sans ce middleware, l'utilisation de la fonction
tentraînera des erreurs d'exécution car les informations de langue nécessaires ne seront pas disponibles.
Exemples d'Utilisation
Exemple de Base
Servir du contenu localisé dans différentes langues :
Copier le code dans le presse-papiers
app.get("/", (c) => {
return c.text(
t({
en: "Welcome!",
fr: "Bienvenue !",
es: "¡Bienvenido!",
})
);
});Requêtes Clients :
- Un client avec
Accept-Language: frrecevraBienvenue !. - Un client avec
Accept-Language: esrecevra¡Bienvenido!. - Un client avec
Accept-Language: derecevraWelcome!(langue par défaut).
Gestion des Erreurs
Fournir des messages d'erreur dans plusieurs langues :
Copier le code dans le presse-papiers
app.get("/error", (c) => {
return c.text(
t({
en: "An unexpected error occurred.",
fr: "Une erreur inattendue s'est produite.",
es: "Ocurrió un error inesperado.",
}),
500
);
});Utilisation des Variantes de Langue
Spécifiez des traductions pour des variantes spécifiques à une langue :
Copier le code dans le presse-papiers
app.get("/greet", (c) => { return c.text( t({ en: "Hello!", "en-GB": "Hello, mate!", fr: "Bonjour !", "es-MX": "¡Hola, amigo!", "es-ES": "¡Hola!", }) );});Sujets Avancés
Mécanisme de Repli
Si une langue préférée est indisponible, la fonction t se repliera sur la langue par défaut définie dans la configuration :
Copier le code dans le presse-papiers
import { Locales, type IntlayerConfig } from "intlayer";const config = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;Application du Mode Strict
Configurez la fonction t pour imposer un respect strict des langues déclarées :
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Mode | Comportement |
|---|---|
strict | Toutes les langues déclarées doivent avoir des traductions fournies. Les langues manquantes jetteront des erreurs. |
inclusive | Les langues déclarées doivent avoir des traductions. Les langues manquantes déclenchent des avertissements mais sont acceptées. |
loose | Toute langue existante est acceptée, même si elle n'est pas déclarée. |
Intégration TypeScript
La fonction t est de type sécurisé lorsqu'elle est utilisée avec TypeScript. Définissez un objet de traductions sécurisé :
Copier le code dans le presse-papiers
import { type LanguageContent } from "hono-intlayer";const translations: LanguageContent<string> = { en: "Good morning!", fr: "Bonjour !", es: "¡Buenos días!",};app.get("/morning", (c) => { return c.text(t(translations));});Erreurs Courantes et Dépannage
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Problème | Cause | Solution |
|---|---|---|
La fonction t ne fonctionne pas | Middleware non chargé | Assurez-vous que app.use("*", intlayer()) est ajouté avant les routes. |
| Erreur de traductions manquantes | Mode strict activé sans toutes les langues | Fournissez toutes les traductions requises. |
Conclusion
La fonction t est un outil puissant pour l'internationalisation backend. En l'utilisant efficacement, vous pouvez créer une application plus inclusive et conviviale pour un public mondial. Pour une utilisation avancée et des options de configuration détaillées, reportez-vous à la documentation.