Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Al integrar el servidor MCP Intlayer a tu asistente de IA, puedes recuperar todos los documentos directamente desde ChatGPT, DeepSeek, Cursor, VSCode, etc.
Ver la documentación del servidor MCPEl contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
Documentación: Función t en express-intlayer
La función t en el paquete express-intlayer es la utilidad principal para proporcionar respuestas localizadas en su aplicación Express. Simplifica la internacionalización (i18n) al seleccionar dinámicamente el contenido basado en el idioma preferido del usuario.
Resumen
La función t se utiliza para definir y recuperar traducciones para un conjunto dado de idiomas. Determina automáticamente el idioma apropiado para devolver según la configuración de la solicitud del cliente, como el encabezado Accept-Language. Si el idioma preferido no está disponible, recurre de manera elegante al locale predeterminado especificado en su configuración.
Características clave
- Localización dinámica: Selecciona automáticamente la traducción más adecuada para el cliente.
- Recurso de reserva al locale predeterminado: Recurre a un locale predeterminado si el idioma preferido del cliente no está disponible, asegurando la continuidad en la experiencia del usuario.
- Ligero y rápido: Diseñado para aplicaciones de alto rendimiento, garantizando una sobrecarga mínima.
- Soporte de modo estricto: Hace cumplir la adhesión estricta a los locales declarados para un comportamiento confiable.
Firma de la función
Copiar el código al portapapeles
t(translations: Record<string, string>): string;
Parámetros
- translations: Un objeto donde las claves son códigos de locales (por ejemplo, en, fr, es-MX) y los valores son las cadenas traducidas correspondientes.
Retorna
- Una cadena que representa el contenido en el idioma preferido del cliente.
Carga del manejador de solicitudes de internacionalización
Para garantizar que la funcionalidad de internacionalización proporcionada por express-intlayer funcione correctamente, debe cargar el middleware de internacionalización al inicio de su aplicación Express. Esto habilita la función t y asegura el manejo adecuado de la detección de locales y la traducción.
Coloque el middleware app.use(intlayer()) antes de cualquier ruta en su aplicación para asegurar que todas las rutas se beneficien de la internacionalización:
Copiar el código al portapapeles
import express, { type Express } from "express";import { intlayer } from "express-intlayer";const app: Express = express();// Cargar el manejador de solicitudes de internacionalizaciónapp.use(intlayer());// Defina sus rutas después de cargar el middlewareapp.get("/", (_req, res) => { res.send( t({ en: "Hello, World!", fr: "Bonjour le monde!", es: "¡Hola, Mundo!", }) );});
Por qué es necesario
- Detección de idioma: El middleware intlayer procesa las solicitudes entrantes para detectar el idioma preferido del usuario basándose en encabezados, cookies u otros métodos configurados.
- Contexto de traducción: Configura el contexto necesario para que la función t opere correctamente, asegurando que las traducciones se devuelvan en el idioma correcto.
- Prevención de errores: Sin este middleware, el uso de la función t resultará en errores en tiempo de ejecución porque no estará disponible la información necesaria del idioma.
Ejemplos de uso
Ejemplo básico
Sirve contenido localizado en diferentes idiomas:
Copiar el código al portapapeles
app.get("/", (_req, res) => { res.send( t({ en: "Welcome!", fr: "Bienvenue!", es: "¡Bienvenido!", }) );});
Solicitudes del cliente:
- Un cliente con Accept-Language: fr recibirá Bienvenue!.
- Un cliente con Accept-Language: es recibirá ¡Bienvenido!.
- Un cliente con Accept-Language: de recibirá Welcome! (idioma predeterminado).
Manejo de Errores
Proporciona mensajes de error en varios idiomas:
Copiar el código al portapapeles
app.get("/error", (_req, res) => { res.status(500).send( t({ en: "An unexpected error occurred.", fr: "Une erreur inattendue s'est produite.", es: "Ocurrió un error inesperado.", }) );});
Uso de Variantes de Idioma
Especifica traducciones para variantes específicas de un idioma:
Copiar el código al portapapeles
app.get("/greet", (_req, res) => { res.send( t({ en: "Hello!", "en-GB": "Hello, mate!", fr: "Bonjour!", "es-MX": "¡Hola, amigo!", "es-ES": "¡Hola!", }) );});
Temas Avanzados
Mecanismo de Reserva
Si una configuración regional preferida no está disponible, la función t recurrirá a la configuración regional predeterminada definida en la configuración:
Copiar el código al portapapeles
import { Locales, type IntlayerConfig } from "intlayer";const config = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, },} satisfies IntlayerConfig;export default config;
Por ejemplo:
- Si defaultLocale es Locales.CHINESE y un cliente solicita Locales.DUTCH, la traducción devuelta será por defecto el valor de Locales.CHINESE.
- Si defaultLocale no está definido, la función t usará como respaldo el valor de Locales.ENGLISH.
Aplicación del Modo Estricto
Configura la función t para hacer cumplir la estricta adherencia a los locales declarados:
Modo | Comportamiento |
---|---|
strict | Todos los locales declarados deben tener traducciones proporcionadas. La ausencia de locales generará errores. |
inclusive | Los locales declarados deben tener traducciones. La ausencia de locales genera advertencias pero se aceptan. |
loose | Se acepta cualquier local existente, incluso si no está declarado. |
Ejemplo de configuración:
Copiar el código al portapapeles
import { type IntlayerConfig } from "intlayer";const config = { // ... Tu configuración existente internationalization: { // ... Tu configuración existente de internacionalización strictMode: "strict", // Aplicar modo estricto },} satisfies IntlayerConfig;export default config;
Integración con TypeScript
La función t es segura en cuanto a tipos cuando se usa con TypeScript. Defina un objeto de traducciones con seguridad de tipos:
Copiar el código al portapapeles
import { type LanguageContent } from "express-intlayer";const translations: LanguageContent<string> = { en: "Good morning!", fr: "Bonjour!", es: "¡Buenos días!",};app.get("/morning", (_req, res) => { res.send(t(translations));});
Errores Comunes y Solución de Problemas
Problema | Causa | Solución |
---|---|---|
La función t no funciona | Middleware no cargado | Asegúrate de que app.use(intlayer()) esté agregado antes de las rutas. |
Error de traducciones faltantes | Modo estricto activado sin todos los locales | Proporciona todas las traducciones requeridas. |
Consejos para un Uso Efectivo
- Centralizar las Traducciones: Utilice un módulo centralizado o archivos JSON para gestionar las traducciones y mejorar el mantenimiento.
- Validar las Traducciones: Asegúrese de que cada variante de idioma tenga una traducción correspondiente para evitar retrocesos innecesarios.
- Combinar con i18n en el Frontend: Sincronice con la internacionalización del frontend para una experiencia de usuario fluida en toda la aplicación.
- Medir el Rendimiento: Pruebe los tiempos de respuesta de su aplicación al agregar traducciones para asegurar un impacto mínimo.
Conclusión
- Centralizar las traducciones: Utilice un módulo centralizado o archivos JSON para gestionar las traducciones y mejorar el mantenimiento.
- Validar las traducciones: Asegúrese de que cada variante de idioma tenga una traducción correspondiente para evitar recurrir innecesariamente a valores predeterminados.
- Combinar con i18n del frontend: Sincronice con la internacionalización del frontend para una experiencia de usuario fluida en toda la aplicación.
- Medir el rendimiento: Pruebe los tiempos de respuesta de su aplicación al agregar traducciones para garantizar un impacto mínimo.
Conclusión
La función t es una herramienta poderosa para la internacionalización en el backend. Al usarla de manera efectiva, puede crear una aplicación más inclusiva y fácil de usar para una audiencia global. Para un uso avanzado y opciones detalladas de configuración, consulte la documentación.
Historial del documento
- 5.5.10 - 2025-06-29: Historial inicial