La integración de Astro es un paquete, @universally-sdk/astro, que sirve tu sitio de Astro en todos los idiomas de tu proyecto Universally desde un único árbol de páginas. Tu idioma de origen permanece en /about, y cada idioma de destino se sirve en el mismo host bajo su propio prefijo, como /fr/about, sin rutas adicionales. La integración está en Beta y requiere Astro 5 o superior.
Cómo se sirven las páginas traducidas
Cuando creas un proyecto de Astro, la pantalla Instrucciones de configuración pregunta ¿Cómo se deben servir las páginas traducidas? y ofrece tres tarjetas. Nada está preseleccionado, y Continuar permanece deshabilitado hasta que elijas una.
| Tarjeta | Ejemplo de URL | Lo que sucede |
|---|---|---|
| SDK (Recomendado) | website.com/fr/ |
Tu servidor de Astro renderiza páginas traducidas. Instalas un paquete. |
| JavaScript | tusitio.com |
Una etiqueta de script traduce la página en el navegador. Sin cambio de DNS, pero sin visibilidad en motores de búsqueda, y solo páginas públicas. |
| Subdominio | fr.tusitio.com |
Universally sirve cada idioma en su propio subdominio obteniendo tu página y traduciéndola. Tu aplicación Astro solo renderiza el idioma de origen. |
Tu sitio sigue funcionando como está hasta que termines la configuración. El resto de esta sección cubre los modos SDK y Subdominio.
Cómo funciona el modo SDK
- Los idiomas se leen una vez, cuando se ejecuta tu configuración de Astro. La integración solicita a Universally los idiomas del proyecto, omite aquellos cuyo interruptor Activo está desactivado y utiliza el prefijo de URL de cada idioma como su segmento de ruta.
- Las traducciones viven en la memoria de tu servidor. Todo el catálogo se carga cuando el servidor de desarrollo o una compilación se inician, por lo que
t()es una búsqueda síncrona sin llamadas de red mientras se renderiza una página. - Las cadenas nuevas se informan después de la respuesta. Una cadena sin traducción aún se renderiza en tu texto de origen y se envía a Universally una vez que el visitante ya tiene la página. Un renderizado posterior la sirve traducida, generalmente uno o dos segundos después.
- Las ediciones del panel llegan a tu servidor mediante un push a tu sitio, o mediante una verificación que se ejecuta como máximo una vez cada 60 segundos por idioma por defecto.
- El idioma de origen no cuesta nada. En las páginas de origen,
t()devuelve su argumento y no realiza ninguna búsqueda, informe o llamada a la API.
Las reglas de glosario se aplican a cada cadena, y las ediciones que realices en la pantalla Traducciones llegan a tu servidor. Reglas de traducción está oculto para proyectos SDK, porque tu código decide qué pasa por t().
Límites
- No hay
t()del lado del cliente. Solo existe en el servidor, enAstro.locals. Las islas reciben texto traducido como props. - Los sitios estáticos se traducen en tiempo de compilación. Las cadenas nuevas y las ediciones del panel requieren una reconstrucción.
- Las palabras provienen del total prepagado de tu proyecto. Una vez que se agota, las cadenas que ya están traducidas se siguen sirviendo y las nuevas permanecen en el idioma de origen. Consulta Límites de uso.
- La creación de un proyecto requiere el rol de Propietario o Administrador. Consulta Roles y permisos.