Part 1

Referencia de la API

Referencia técnica de la API para los componentes y utilidades de AstroGlass.

Referencia detallada de las funciones clave, tipos y objetos de configuración utilizados en AstroGlass.

useTranslations(locale)

Devuelve una función para obtener traducciones para el idioma (locale) dado.

Módulo: src/utils/i18n.ts

Firma:

function useTranslations(locale: Locale): (key: string) => string;

Parámetros:

ParámetroTipoDescripción
localeLocale ('en' | 'ru')El código de idioma para cargar las traducciones.

Devuelve: Una función t(key: string): string que resuelve una clave en notación de puntos hacia su valor traducido. Si la clave no se encuentra, devuelve la propia clave y registra una advertencia en modo de desarrollo.

Uso:

---
import { useTranslations } from '../utils/i18n';
import { getLocaleFromUrl } from '../utils/locale-utils';
const locale = getLocaleFromUrl(Astro.url);
const t = useTranslations(locale);
---
<h1>{t('hero.title')}</h1>
<p>{t('hero.subtitle')}</p>

Comportamiento Clave:

  • Las claves de common.json se reparten en el nivel raíz (ej., t('title'))
  • Todos los demás archivos usan su nombre de archivo como espacio de nombres (ej., t('hero.title'), t('pricing.plans.pro.name'))
  • Las claves faltantes devuelven la cadena de la clave en producción, y registran advertencias en desarrollo

getLocaleFromUrl(url)

Extrae el código de idioma a partir de la URL actual.

Módulo: src/utils/locale-utils.ts

Firma:

function getLocaleFromUrl(url: URL): Locale;

Devuelve el prefijo de idioma de la ruta de la URL, con el valor predeterminado 'en' si no se encuentra ninguno.


buildNavLinks(locale, section)

Genera enlaces de navegación para la barra lateral de la documentación.

Módulo: src/utils/docs-nav.ts

Firma:

function buildNavLinks(locale: string, section?: string): NavLink[];

Devuelve un arreglo de objetos de enlaces de navegación usados por el componente de la barra lateral de la documentación.


getEnabledThemes()

Devuelve todas las definiciones de temas habilitados.

Módulo: src/config/themes.ts

Firma:

function getEnabledThemes(): ThemeDefinition[];

getThemeById(id)

Devuelve una definición de tema específica por su identificador (ID).

Módulo: src/config/themes.ts

Firma:

function getThemeById(id: string): ThemeDefinition | undefined;

Tipo: ThemeDefinition

interface ThemeDefinition {
id: string; // Slug de URL (ej., 'liquid', 'aurora')
name: string; // Nombre a mostrar
color: string; // Clases de gradiente de Tailwind
icon: string; // Ícono Emoji
sections: string[]; // Secciones habilitadas
enabled: boolean; // Si el tema está activo
premium: boolean; // Indicador Premium
description: string; // Descripción en una línea
}

Tipo: LocaleConfig

interface LocaleConfig {
code: string; // Código de idioma ISO
name: string; // Nombre en inglés
nativeName: string; // Nombre nativo
flag: string; // Emoji de bandera
direction: 'ltr' | 'rtl';
enabled: boolean;
}

Temas Disponibles

IDNombreÍcono
liquidLiquid💧
glassGlass🪟
neoNeo
luxuryLuxury👑
minimalMinimal
auroraAurora🌌