L'intégration Astro est un package, @universally-sdk/astro, qui sert votre site Astro dans chaque langue de votre projet Universally à partir d'un seul arbre de pages. Votre langue source reste sur /about, et chaque langue cible est servie sur le même hôte sous son propre préfixe, tel que /fr/about, sans routes supplémentaires. L'intégration est en Bêta et nécessite Astro 5 ou plus récent.
Comment les pages traduites sont servies
Lorsque vous créez un projet Astro, l'écran Instructions de configuration demande Comment les pages traduites doivent-elles être servies ? et propose trois cartes. Rien n'est présélectionné, et Continuer reste désactivé jusqu'à ce que vous en choisissiez une.
| Carte | Exemple d'URL | Ce qui se passe |
|---|---|---|
| SDK (Recommandé) | website.com/fr/ |
Votre serveur Astro rend les pages traduites. Vous installez un package. |
| JavaScript | site.com |
Une balise de script traduit la page dans le navigateur. Pas de changement DNS, mais pas de visibilité pour les moteurs de recherche, et pages publiques uniquement. |
| Sous-domaine | fr.site.com |
Universally sert chaque langue sur son propre sous-domaine en récupérant votre page et en la traduisant. Votre application Astro ne rend que la langue source. |
Votre site continue de fonctionner tel quel jusqu'à ce que vous terminiez la configuration. Le reste de cette section couvre les modes SDK et Sous-domaine.
Comment fonctionne le mode SDK
- Les langues sont lues une fois, lorsque votre configuration Astro s'exécute. L'intégration demande à Universally les langues du projet, ignore celles dont le commutateur En ligne est désactivé, et utilise le préfixe d'URL de chaque langue comme segment de chemin.
- Les traductions résident dans la mémoire de votre serveur. Tout le catalogue se charge au démarrage du serveur de développement ou d'une build, donc
t()est une recherche synchrone sans appel réseau pendant le rendu d'une page. - Les nouvelles chaînes sont signalées après la réponse. Une chaîne sans traduction rendue s'affiche dans votre texte source et est envoyée à Universally une fois que le visiteur a déjà la page. Un rendu ultérieur la servira traduite, généralement une ou deux secondes plus tard.
- Les modifications du tableau de bord parviennent à votre serveur par une poussée vers votre site, ou par une vérification qui s'exécute au plus une fois toutes les 60 secondes par langue par défaut.
- La langue source ne coûte rien. Sur les pages sources,
t()renvoie son argument et ne fait aucune recherche, aucun rapport, ni aucun appel API.
Les règles de glossaire s'appliquent à chaque chaîne, et les modifications que vous apportez sur l'écran Traductions parviennent à votre serveur. Règles de traduction est masqué pour les projets SDK, car votre code décide de ce qui passe par t().
Limites
- Pas de
t()côté client. Il n'existe que sur le serveur, dansAstro.locals. Les îles reçoivent le texte traduit sous forme de props. - Les sites statiques se traduisent au moment de la build. Les nouvelles chaînes et les modifications du tableau de bord nécessitent une reconstruction.
- Les mots proviennent du total prépayé de votre projet. Une fois qu'il est dépensé, les chaînes déjà traduites continuent d'être servies et les nouvelles restent dans la langue source. Voir Limites d'utilisation.
- La création d'un projet nécessite le rôle Propriétaire ou Administrateur. Voir Rôles et autorisations.