Referencia de API
setRequestLocale
setRequestLocale(url: URL, getConfig?: GetRequestConfigFn): Promise<boolean>
Extrae y valida el locale del primer segmento del pathname, luego llama a tu función getConfig para cargar los mensajes. Debe ser awaited antes de cualquier otra llamada. En SSR, prefiere createIntlMiddleware() o runWithLocale() para mantener aislado todo el render.
runWithLocale
runWithLocale<R>(url: URL, fn: () => R | Promise<R>, getConfig?: GetRequestConfigFn): Promise<R>
Ejecuta una función dentro de un contexto aislado por request usando AsyncLocalStorage de Node.js. Los runtimes SSR sin almacenamiento seguro fallan explícitamente en vez de compartir estado global.
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}) con sanitización por parser para interpolación HTML y t.raw(key) para acceder a valores sin coerción.
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 que el locale tenga una sintaxis válida estilo BCP-47 y, cuando existe una lista locales, que también esté incluido en ella.
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 middleware de Astro que valida y carga el locale del request, y mantiene todo el render o rewrite dentro de un contexto AsyncLocalStorage de Node.js. También configura locales, defaultLocale y routes en el store. 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, rechaza segmentos de locale inválidos y 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 validado. Matchea la ruta contra los templates, extrae los params dinámicos y reconstruye la URL con el template del locale destino. Preserva query strings y hashes. Importar desde astro-intl/routing.
RequestConfigTipo retornado por tu función getRequestConfig. Contiene locale: string y messages: Record.
IntlConfigTipo de configuración para las opciones de la integración. Contiene defaultLocale: string, locales: string[], routes?: RoutesMap y fallbackRoutes?: FallbackRouteInfo[].
PrimitiveTipo 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.
RoutesMapTipo 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 sanitizado. El texto y los chunks se escapan, los tags nativos inseguros se rechazan y los callbacks de componentes se tratan como código confiable antes de la sanitización final. 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.
FallbackRouteInfoTipo 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].
MessagesDirConfigTipo 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 valida sus props de locale, detecta el idioma del navegador y redirige a la ruta localizada codificada apropiada. defaultLocale debe estar incluido en locales. 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.