Referencia de API
setRequestLocale
setRequestLocale(url: URL, getConfig: Function): Promise<void>
Extrae el locale del pathname de la URL (primer segmento) y llama a tu función getConfig para cargar los mensajes. Debe ser awaited antes de cualquier otra llamada.
runWithLocale
runWithLocale<R>(url: URL, fn: () => R | Promise<R>, getConfig?: GetRequestConfigFn): Promise<R>
Ejecuta una función dentro de un contexto aislado por request. Usa AsyncLocalStorage en Node.js para SSR concurrency-safe. Cae en fallback a variable global en runtimes sin soporte (Cloudflare Workers, Deno).
getLocale
getLocale(): string
Retorna el string del locale actual establecido por setRequestLocale. Lanza un error si se llama antes de establecer el locale.
getTranslations
getTranslations<T>(namespace?: string)
Retorna una función t(key, values?) tipada con scope al namespace dado. El objeto values opcional reemplaza placeholders {curlyOpen}varName{curlyClose}. También expone t.markup(key, tags | {curlyOpen} values?, tags {curlyClose}) para interpolación HTML y t.raw(key) para acceder a valores sin coerción.
getTranslationsReact
Deprecated
getTranslationsReact<T>(namespace?: string)
Igual que getTranslations pero retorna una función con t.rich(key, tags) para interpolación de nodos React.
getDefaultLocale
getDefaultLocale(): string
Retorna el defaultLocale configurado via las opciones de la integración o createIntlMiddleware. Por defecto es "en" si no se establece.
getLocales
getLocales(): string[]
Retorna el array de locales configurados via las opciones de la integración o createIntlMiddleware. Retorna un array vacío si no se establece.
isValidLocale
isValidLocale(locale: string): boolean
Verifica si un string de locale está en la lista de locales configurada. Retorna true para cualquier string si no se han configurado locales.
getMessages
getMessages(): Record<string, unknown>
Retorna el objeto completo de mensajes para el request actual. Lanza un error si se llama antes de setRequestLocale.
createIntlMiddleware
createIntlMiddleware(options: { locales: string[]; defaultLocale?: string; routes?: RoutesMap })
Crea un middleware de Astro que llama automáticamente a setRequestLocale en cada request. También establece locales, defaultLocale y routes en el store de intl. Cuando se proporcionan routes, el middleware reescribe las URLs traducidas a sus rutas canónicas del filesystem. Importar desde astro-intl/middleware.
path
path(routeKey: string, options?: { locale?: string; params?: Record<string, string>; encode?: boolean }): string
Genera una URL localizada para una ruta nombrada. Usa el locale actual si no se especifica uno. Sustituye los placeholders [param] con los params proporcionados. Importar desde astro-intl/routing.
switchLocalePath
switchLocalePath(currentPath: string | URL, nextLocale: string): string
Convierte la URL actual a su equivalente en otro locale. Matchea la ruta contra los templates de rutas, extrae los params dinámicos y reconstruye la URL usando el template del locale destino. Preserva query strings y hashes. Importar desde astro-intl/routing.
RequestConfig Tipo retornado por tu función getRequestConfig. Contiene locale: string y messages: Record.
IntlConfig Tipo de configuración para las opciones de la integración. Contiene defaultLocale: string, locales: string[], routes?: RoutesMap y fallbackRoutes?: FallbackRouteInfo[].
Primitive Tipo unión para valores de interpolación: string | number | boolean | null | undefined. Se usa como tipo de valor en el objeto values pasado a t() y t.markup().
DotPaths<T> Tipo utilitario que genera todos los paths válidos en notación de puntos para un objeto de mensajes dado. Se usa internamente para proveer autocompletado en las claves de traducción.
RoutesMap Tipo para el objeto de configuración de rutas. Mapea claves de ruta a un objeto de locale → template de URL. Ejemplo: { about: { en: "/about", es: "/sobre-nosotros" } }.
createGetTranslations (React)
createGetTranslations<UI, DefaultLocale>(ui: UI, defaultLocale: DefaultLocale)
Crea una función de traducción standalone para React sin depender del store global. Retorna getTranslations(lang, namespace) con soporte de t.rich() retornando ReactNode[]. Importar desde astro-intl/react.
createGetTranslations (Svelte)
createGetTranslations<UI, DefaultLocale>(ui: UI, defaultLocale: DefaultLocale)
Crea una función de traducción standalone para Svelte sin depender del store global. Retorna getTranslations(lang, namespace) con soporte de t.rich() retornando RichSegment[]. Importar desde astro-intl/svelte.
renderRichText
renderRichText(segments: RichSegment[], options?: { tags?: Record<string, string>; components?: Record<string, (chunks: string) => string> }): string
Convierte un array de RichSegment[] en un string HTML. Usa tags para elementos HTML nativos (ej. { bold: "strong" }) o components para funciones de renderizado personalizadas. Importar desde astro-intl/svelte.
getFallbackRoutes
getFallbackRoutes(): FallbackRouteInfo[]
Retorna las rutas fallback de i18n recopiladas del hook astro:routes:resolved de Astro 6.1. Retorna un array vacío en Astro < 6.1 o cuando no hay rutas fallback configuradas. Cada entrada contiene el pattern de la ruta, el pathname opcional y el locale.
FallbackRouteInfo Tipo para las entradas de rutas fallback. Contiene pattern: string (el patrón de ruta), pathname?: string (el pathname estático si está disponible) y locale: string (el locale al que sirve este fallback).
t.raw() Retorna el valor de traducción sin coerción a string. Usa esto para acceder a arrays, objetos y números en su tipo JavaScript nativo en lugar de obtener [object Object].
MessagesDirConfig Tipo de configuración para la opción messagesDir. Configúralo con una ruta de directorio (ej. "./src/i18n/messages") y la integración cargará automáticamente los archivos {locale}.json con los import attributes correctos.
Componente AutoRedirect
<AutoRedirect locales={string[]} defaultLocale={string} />
Componente de Astro que detecta el idioma del navegador del usuario y redirige automáticamente a la ruta localizada apropiada. Úsalo en tu página raíz en lugar de Astro.redirect() para evitar el problema de la página en blanco en modo estático. Importa desde astro-intl/components.
Auto-detección de Locale (Modo Estático) Cuando se ejecuta en modo estático sin llamadas explícitas a setRequestLocale(), getLocale() detecta automáticamente el locale desde window.location.pathname. Hace fallback a defaultLocale si no se encuentra un locale válido. Solo del lado del cliente.