Saltearse al contenido

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.

  1. Sigue la guía de Starlight para usar un idioma raíz.

  2. Para habilitar el modo Starlight, necesitas proporcionar la entrada starlight_dir en la acción.

    .github/workflows/ct.yml
    uses: pelikhan/action-continuous-translation@v0
    with:
    starlight_dir: ./docs
  3. Si también has configurado la opción base de Astro, necesitas proporcionar también la entrada starlight_base.

    .github/workflows/ct.yml
    uses: pelikhan/action-continuous-translation@v0
    with:
    starlight_dir: ./docs
    starlight_base: astro_base_option

Además del Markdown/MDX, soportamos algunos de los metadatos frontmatter que Starlight admite:

También soportamos entradas frontmatter de Starlight Blog:

  • excerpt: El extracto de la publicación del blog.

Las entradas title y sidebar en el frontmatter no se traducen automáticamente mediante la acción. Recomendamos mover esas entradas a un archivo JSON e importarlas en tu archivo astro.config.mjs.

astro.config.mjs
// other imports
import { 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.

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 y Hero en tu archivo astro.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 desde docs/src/components en este repositorio.

Siéntete libre de modificar la lógica en AIGeneratedNotice.astro para ajustarla a tus necesidades.

Si utilizas el Validador de Enlaces de Astro, asegúrate de desactivar la opción errorOnRelativeLinks en tu archivo astro.config.mjs ya que los enlaces localizados son relativos al idioma raíz.

También puedes habilitar la opción errorOnInconsistentLocale para garantizar que todos los enlaces sean coherentes con el idioma actual.

astro.config.mjs
import starlightLinksValidator from "starlight-links-validator";
export default defineConfig({
integrations: [
starlight({
plugins: [
starlightLinksValidator({
errorOnRelativeLinks: false,
errorOnInconsistentLocale: true,
}),
],
}),
],
});

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.