summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Diaz2025-04-16 05:22:38 -0400
committerGitHub2025-04-16 11:22:38 +0200
commit3e86c853478ff2b0a480764404bcd30ed01d7450 (patch)
tree56850e6072e76016914631e0d3d94b4145aca49a
parente91f9e64e4d408abee7a40ddb52333688b9ff5f5 (diff)
downloadIT.starlight-3e86c853478ff2b0a480764404bcd30ed01d7450.tar.gz
IT.starlight-3e86c853478ff2b0a480764404bcd30ed01d7450.tar.bz2
IT.starlight-3e86c853478ff2b0a480764404bcd30ed01d7450.zip
i18n(es) Translate `route-data` (#3071)
Co-authored-by: Chris Swithinbank <swithinbank@gmail.com>
-rw-r--r--docs/src/content/docs/es/guides/route-data.mdx139
-rw-r--r--docs/src/content/docs/es/reference/route-data.mdx2
2 files changed, 140 insertions, 1 deletions
diff --git a/docs/src/content/docs/es/guides/route-data.mdx b/docs/src/content/docs/es/guides/route-data.mdx
new file mode 100644
index 00000000..11399f47
--- /dev/null
+++ b/docs/src/content/docs/es/guides/route-data.mdx
@@ -0,0 +1,139 @@
+---
+title: Datos de Ruta
+description: Aprende cómo se utiliza el modelo de datos de página de Starlight para renderizar tus páginas y cómo puedes personalizarlo.
+---
+
+import { Steps } from '@astrojs/starlight/components';
+
+Cuando Starlight renderiza una página en tu documentación, primero crea un objeto de datos de ruta para representar lo que hay en esa página.
+Esta guía explica cómo se generan los datos de ruta, cómo usarlos y cómo puedes personalizarlos para modificar el comportamiento predeterminado de Starlight.
+
+Consulta la [“Referencia de los Datos de Ruta”](/es/reference/route-data/) para obtener una lista completa de las propiedades disponibles.
+
+## ¿Qué son los datos de ruta?
+
+Los datos de ruta de Starlight son un objeto que contiene toda la información necesaria para renderizar una sola página.
+Incluye información de la página actual, así como datos generados a partir de tu configuración de Starlight.
+
+## Uso de los datos de ruta
+
+Todos los componentes de Starlight utilizan los datos de ruta para decidir qué renderizar en cada página.
+Por ejemplo, la cadena [`siteTitle`](/es/reference/route-data/#sitetitle) se utiliza para mostrar el título del sitio y el array [`sidebar`](/es/reference/route-data/#sidebar) se utiliza para renderizar la navegación global de la barra lateral.
+
+Puedes acceder a estos datos desde la variable global `Astro.locals.starlightRoute` en los componentes de Astro:
+
+```astro title="ejemplo.astro" {2}
+---
+const { siteTitle } = Astro.locals.starlightRoute;
+---
+
+<p>El título de este sitio es “{siteTitle}”</p>
+````
+
+Esto puede ser útil, por ejemplo, al construir [sustituciones de componentes](/es/guides/overriding-components/) para personalizar lo que se muestra.
+
+## Personalización de los datos de ruta
+
+Los datos de ruta de Starlight funcionan de forma predeterminada y no requieren ninguna configuración.
+Sin embargo, para casos de uso avanzados, es posible que desees personalizar los datos de ruta para algunas o todas las páginas para modificar cómo se muestra tu sitio.
+
+Este es un concepto similar a las [sustituciones de componentes](/es/guides/overriding-components/), pero en lugar de modificar cómo Starlight renderiza tus datos, modificas los datos que Starlight renderiza.
+
+### Cuándo personalizar los datos de ruta
+
+La personalización de los datos de ruta puede ser útil cuando deseas modificar cómo Starlight procesa tus datos de una manera que no es posible con las opciones de configuración existentes.
+
+Por ejemplo, es posible que desees filtrar elementos de la barra lateral o personalizar los títulos de páginas específicas.
+Cambios como este no requieren modificar los componentes predeterminados de Starlight, solo los datos que se pasan a esos componentes.
+
+### Cómo personalizar los datos de ruta
+
+Puedes personalizar los datos de ruta utilizando una forma especial de “middleware”.
+Esta es una función que se llama cada vez que Starlight renderiza una página y puede modificar los valores del objeto de datos de ruta.
+
+<Steps>
+
+1. Crea un nuevo archivo que exporte una función `onRequest` utilizando la utilidad `defineRouteMiddleware()` de Starlight:
+
+ ```ts
+ // src/routeData.ts
+ import { defineRouteMiddleware } from '@astrojs/starlight/route-data';
+
+ export const onRequest = defineRouteMiddleware(() => {});
+ ```
+
+2. Indica a Starlight dónde se encuentra tu archivo de middleware de datos de ruta en `astro.config.mjs`:
+
+ ```js ins={9}
+ // astro.config.mjs
+ import { defineConfig } from 'astro/config';
+ import starlight from '@astrojs/starlight';
+
+ export default defineConfig({
+ integrations: [
+ starlight({
+ title: 'Mi increíble sitio de documentación',
+ routeMiddleware: './src/routeData.ts',
+ }),
+ ],
+ });
+ ```
+
+3. Actualiza tu función `onRequest` para modificar los datos de ruta.
+
+ El primer argumento que recibirá tu middleware es el [objeto `context` de Astro](https://docs.astro.build/es/reference/api-reference/).
+ Este contiene información completa sobre la renderización de la página actual, incluyendo la URL actual y las `locals`.
+
+ En este ejemplo, vamos a hacer que nuestra documentación sea más emocionante añadiendo un signo de exclamación al final del título de cada página.
+
+ ```ts
+ // src/routeData.ts
+ import { defineRouteMiddleware } from '@astrojs/starlight/route-data';
+
+ export const onRequest = defineRouteMiddleware((context) => {
+ // Obtiene la entrada de la colección de contenido para esta página.
+ const { entry } = context.locals.starlightRoute;
+ // Actualiza el título para añadir un signo de exclamación.
+ entry.data.title = entry.data.title + '!';
+ });
+ ```
+
+</Steps>
+
+#### Múltiple middleware de ruta
+
+Starlight también admite proporcionar múltiples middleware.
+Establece `routeMiddleware` en un array de rutas para añadir más de un manejador de middleware:
+
+```js {9}
+// astro.config.mjs
+import { defineConfig } from 'astro/config';
+import starlight from '@astrojs/starlight';
+
+export default defineConfig({
+ integrations: [
+ starlight({
+ title: 'Mi sitio con múltiples middleware',
+ routeMiddleware: ['./src/middleware-one.ts', './src/middleware-two.ts'],
+ }),
+ ],
+});
+```
+
+#### Esperando middleware de ruta posterior
+
+Para esperar a que se ejecute el middleware posterior en la pila antes de ejecutar tu código, puedes usar `await` en la función de callback `next()` que se pasa como segundo argumento a tu función de middleware.
+Esto puede ser útil para esperar a que se ejecute el middleware de un plugin antes de realizar cambios, por ejemplo.
+
+```ts "next" "await next();"
+// src/routeData.ts
+import { defineRouteMiddleware } from '@astrojs/starlight/route-data';
+
+export const onRequest = defineRouteMiddleware(async (context, next) => {
+ // Espera a que se ejecute el middleware posterior.
+ await next();
+ // Modifica los datos de ruta.
+ const { entry } = context.locals.starlightRoute;
+ entry.data.title = entry.data.title + '!';
+});
+```
diff --git a/docs/src/content/docs/es/reference/route-data.mdx b/docs/src/content/docs/es/reference/route-data.mdx
index c4629d12..a4e89dde 100644
--- a/docs/src/content/docs/es/reference/route-data.mdx
+++ b/docs/src/content/docs/es/reference/route-data.mdx
@@ -16,7 +16,7 @@ const { hasSidebar } = Astro.locals.starlightRoute;
---
```
-En el [middleware de ruta](/es/guides/route-data/#customizing-route-data), accede a los datos de ruta desde el objeto de contexto pasado a tu función de middleware:
+En el [middleware de ruta](/es/guides/route-data/#personalización-de-los-datos-de-ruta), accede a los datos de ruta desde el objeto de contexto pasado a tu función de middleware:
```ts {5}
// src/routeData.ts