diff --git a/docs/src/content/docs/es/guides/i18n.mdx b/docs/src/content/docs/es/guides/i18n.mdx
index 7a03c5d5fcd..cd03cc693d4 100644
--- a/docs/src/content/docs/es/guides/i18n.mdx
+++ b/docs/src/content/docs/es/guides/i18n.mdx
@@ -180,8 +180,7 @@ import UIStringsList from '~/components/ui-strings-list.astro';
Además de alojar archivos de contenido traducidos, Starlight te permite traducir las etiquetas de UI predeterminadas (p. ej. el encabezado "En esta página" en la tabla de contenidos) para que tus lectores puedan experimentar tu sitio completamente en el idioma seleccionado.
+ {Astro.locals.t('404.text')} +
+``` + +También puedes usar la API en [endpoints](https://docs.astro.build/es/guides/endpoints/), donde el objeto `locals` está disponible como parte del [contexto del endpoint](https://docs.astro.build/es/reference/api-reference/#contextlocals): + +```ts title="src/pages/404.ts" +export const GET = (context) => { + return new Response(context.locals.t('404.text')); +}; +``` + +### Renderizar una string de UI + +Renderiza strings de UI utilizando la función `locals.t()`. +Esta es una instancia de la función `t()` de i18next, que toma una clave de cadena de UI como su primer argumento y devuelve la traducción correspondiente para el idioma actual. + +Por ejemplo, dado un archivo de traducción personalizado con el siguiente contenido: + +```json title="src/content/i18n/en.json" +{ + "link.astro": "Astro documentation", + "link.astro.custom": "Astro documentation for {{feature}}" +} +``` + +La primera string de UI se puede renderizar pasando `'link.astro'` a la función `t()`: + +```astro {3} + + + {Astro.locals.t('link.astro')} + + +``` + +La segunda string de UI utiliza la [sintaxis de interpolación](https://www.i18next.com/translation-function/interpolation) de i18next para el marcador `{{feature}}`. +El valor de `feature` debe establecerse en un objeto de opciones pasado como segundo argumento a `t()`: + +```astro {3} + + + {Astro.locals.t('link.astro.custom', { feature: 'Astro DB' })} + + +``` + +Ver la [documentación de i18next](https://www.i18next.com/overview/api#t) para obtener más información sobre cómo usar la función `t()` con interpolación, formato y más. + +### APIs avanzadas + +#### `t.all()` + +La función `locals.t.all()` devuelve un objeto que contiene todas las strings de UI disponibles para el idioma actual. + +```astro +--- +// src/components/Example.astro +const allStrings = Astro.locals.t.all(); +// ^ +// { +// "skipLink.label": "Skip to content", +// "search.label": "Search", +// … +// } +--- +``` + +#### `t.exists()` + +Para comprobar si una clave de traducción existe para un idioma, utiliza la función `locals.t.exists()` con la clave de traducción como primer argumento. +Pasa un segundo argumento opcional si necesitas anular el idioma actual. + +```astro +--- +// src/components/Example.astro +const keyExistsInCurrentLocale = Astro.locals.t.exists('a.key'); +// ^ true +const keyExistsInFrench = Astro.locals.t.exists('another.key', { lng: 'fr' }); +// ^ false +--- +``` + +Ver la [referencia de `exists()` en la documentación de i18next](https://www.i18next.com/overview/api#exists) para obtener más información. + +#### `t.dir()` + +La función `locals.t.dir()` devuelve la dirección del texto del idioma actual o de un idioma específico. + +```astro +--- +// src/components/Example.astro +const currentDirection = Astro.locals.t.dir(); +// ^ +// 'ltr' +const arabicDirection = Astro.locals.t.dir('ar'); +// ^ +// 'rtl' +--- +``` + +Ver la [referencia de `dir()` en la documentación de i18next](https://www.i18next.com/overview/api#dir) para obtener más información. + ## Acceder al idioma actual Puedes usar [`Astro.currentLocale`](https://docs.astro.build/es/reference/api-reference/#astrocurrentlocale) para leer el idioma actual en componentes `.astro`. diff --git a/docs/src/content/docs/es/reference/plugins.md b/docs/src/content/docs/es/reference/plugins.md index a513a241661..9be9663f69b 100644 --- a/docs/src/content/docs/es/reference/plugins.md +++ b/docs/src/content/docs/es/reference/plugins.md @@ -162,3 +162,71 @@ El ejemplo anterior registrará un mensaje que incluye el mensaje de informació ```shell [long-process-plugin] Empezando un proceso largo… ``` + +#### `injectTranslations` + +**tipo:** `(translations: Record