Módulo virtual:i18n
El módulo virtual:i18n es auto-generado por la integración createI18n. Proporciona todos los helpers y valores de configuración de i18n como exportaciones nombradas.
Declaración de tipos
Agrega esto a tu src/env.d.ts:
declare module 'virtual:i18n' { export const t: (locale: string, key: string) => string; export const localePath: (locale: string, path: string) => string; export const switchLocalePath: (currentPath: string, targetLocale: string) => string; export const getLocaleFromPath: (pathname: string) => string; export const localized: <T>(field: Record<string, T>, locale: string) => T; export const getLocalizedSlug: (category: string, canonicalSlug: string, locale: string) => string; export const getCanonicalSlug: (category: string, localizedSlug: string, locale: string) => string | undefined; export const config: import('@otrodigital/astro-i18n-next').LocaleConfig; export const defaultLocale: string; export const locales: string[]; export const localeLabels: Record<string, string>; export const localeHtmlLang: Record<string, string>;}Funciones
t(locale, key)
Traduce una clave para un idioma dado usando i18next. Cae al defaultLocale para claves faltantes.
t('en', 'nav.about'); // "About"t('es', 'nav.about'); // "Acerca de"t('es', 'missing.key'); // Cae al valor en inglésSoporta notación de punto para claves anidadas. HTML no se escapa (seguro para set:html).
localePath(locale, path)
Traduce una ruta canónica a una URL específica del idioma.
localePath('en', '/about/'); // "/about/"localePath('es', '/about/'); // "/es/sobre/"localePath('es', '/saunas/model-165/'); // "/es/saunas/modelo-165/"switchLocalePath(currentPath, targetLocale)
Convierte una ruta de su idioma actual a un idioma objetivo.
switchLocalePath('/es/sobre/', 'en'); // "/about/"switchLocalePath('/about/', 'es'); // "/es/sobre/"switchLocalePath('/es/saunas/modelo-165/', 'en'); // "/saunas/model-165/"getLocaleFromPath(pathname)
Extrae el idioma de una ruta URL.
getLocaleFromPath('/es/sobre/'); // "es"getLocaleFromPath('/about/'); // "en" (predeterminado)localized(field, locale)
Extrae un valor específico del idioma de un objeto de campo multilingüe. Cae al defaultLocale.
localized({ en: 'Hello', es: 'Hola' }, 'es'); // "Hola"localized({ en: 'Hello' }, 'es'); // "Hello" (fallback)getLocalizedSlug(category, canonicalSlug, locale)
Traduce un slug canónico a un slug específico del idioma.
getLocalizedSlug('saunas', 'model-165', 'es'); // "modelo-165"getCanonicalSlug(category, localizedSlug, locale)
Búsqueda inversa — encuentra el slug canónico a partir de uno localizado.
getCanonicalSlug('saunas', 'modelo-165', 'es'); // "model-165"Valores de configuración
config
Tipo: LocaleConfig
El objeto completo de configuración de idioma.
defaultLocale
Tipo: string
El código del idioma predeterminado (ej., 'en').
locales
Tipo: string[]
Array de todos los códigos de idioma soportados.
localeLabels
Tipo: Record<string, string>
Nombres legibles de idiomas (ej., { en: 'English', es: 'Español' }).
localeHtmlLang
Tipo: Record<string, string>
Valores del atributo HTML lang por idioma.