Saltearse al contenido

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és

Soporta 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.