Esta acción se puede usar para traducir el contenido de un sitio de documentación de Astro Starlight. Requiere una configuración específica de Starlight como se detalla a continuación.
-
Sigue la guía de Starlight para usar un idioma raíz.
-
Para habilitar el modo Starlight, necesitas proporcionar la entrada
starlight_dir
en la acción..github/workflows/ct.yml uses: pelikhan/action-continuous-translation@v0with:starlight_dir: ./docs -
Si también has configurado la opción
base
de Astro, necesitas proporcionar también la entradastarlight_base
..github/workflows/ct.yml uses: pelikhan/action-continuous-translation@v0with:starlight_dir: ./docsstarlight_base: astro_base_option
Supported Frontmatter entries
Sección titulada «Supported Frontmatter entries»Además del Markdown/MDX, soportamos algunos de los metadatos frontmatter que Starlight admite:
title
: El título de la página.description
: La descripción de la página.head.content
: El contenido de las etiquetas<head>
para páginas específicas.hero.tagline
: El eslogan de la sección principal.hero.actions.text
: El texto del botón de acción en la sección principal.banner.content
: El contenido de un banner específico de la página.prev
/prev.label
: El texto del enlace a la página anterior.next
/next.label
: El texto del enlace a la siguiente página.sidebar.label
: Texto personalizado en la barra lateral (por defectotitle
).sidebar.badge
/sidebar.badge.text
: Texto de la insignia para la barra lateral.
También soportamos entradas frontmatter de Starlight Blog:
excerpt
: El extracto de la publicación del blog.
Title and Sidebar
Sección titulada «Title and Sidebar»Las entradas title
y sidebar
en la configuración de Starlight no se traducen automáticamente por la acción.
Se recomienda mover esas entradas a un archivo JSON e importarlas en tu archivo astro.config.mjs
.
// other importsimport { title } from "./resources.json" assert { type: "json" };
export default defineConfig({ integrations: [ starlight({ title, }), ],});
Consulta la documentación específica sobre title y sidebar en Starlight para más detalles.
AI Content Notice
Sección titulada «AI Content Notice»Puedes informar a tus usuarios que la traducción fue generada por GenAI añadiendo un aviso en el título. Actualmente, Astro Starlight no admite una función incorporada para añadir avisos, por lo que es necesario sobrescribir algunos componentes.
-
Sobrescribe los componentes
PageTitle
yHero
en tu archivoastro.config.mjs
:astro.config.mjs export default defineConfig({integrations: [starlight({components: {PageTitle: "./src/components/PageTitle.astro",Hero: "./src/components/Hero.astro",},}),],}); -
Añade los componentes en tu directorio
src/components
desdedocs/src/components
en este repositorio.
Siéntete libre de modificar la lógica en AIGeneratedNotice.astro
para ajustarla a tus necesidades.
Validador de Enlaces de Starlight
Sección titulada «Validador de Enlaces de Starlight»Si usas el Validador de Enlaces de Starlight,
asegúrate de deshabilitar las opciones errorOnRelativeLinks
y
errorOnInvalidHashes
en tu archivo astro.config.mjs
,
ya que los enlaces localizados son relativos al idioma raíz y las etiquetas hash aún no se traducen.
También puedes habilitar la opción errorOnInconsistentLocale
para garantizar que todos los enlaces sean coherentes con el idioma actual.
import starlightLinksValidator from "starlight-links-validator";
export default defineConfig({ integrations: [ starlight({ plugins: [ starlightLinksValidator({ errorOnRelativeLinks: false, errorOnInvalidHashes: false, errorOnInconsistentLocale: true, }), ], }), ],});
Lunaria Translation Dashboard
Sección titulada «Lunaria Translation Dashboard»Puedes usar el Panel de Traducción de Lunaria para generar un panel de estado de traducción para tu sitio Starlight.
Puedes probar el panel navegando al enlace Translation Dashboard en la barra lateral de esta página.