Documentation Universally

Guides étape par étape, conseils de SEO multilingue et meilleures pratiques pour vous aider à traduire et à développer votre site WordPress.

Mises à jour de traduction dans Astro

Une nouvelle chaîne est traduite en arrière-plan après la première page qui l'utilise, et une modification du tableau de bord parvient à votre serveur en cours d'exécution par une poussée signée ou par une vérification toutes les 60 secondes par langue. Un site statique ne récupère les deux qu'au moment de la reconstruction.

Nouvelles chaînes

  1. Une page appelle t() avec du texte qui n'a pas de traduction. Le visiteur reçoit le texte source.
  2. Après la réponse, l'intégration signale les chaînes manquantes à Universally par lots de 500. Sur les runtimes qui offrent waitUntil, le rapport se termine après l'envoi de la réponse.
  3. Universally renvoie les traductions qu'il possède déjà et traduit le reste en arrière-plan.
  4. Les nouvelles traductions parviennent à votre serveur lors d'un rapport ultérieur (une chaîne manquante est signalée à nouveau lors du rendu suivant) ou lorsque cette langue est rechargée.

En pratique, une nouvelle chaîne est traduite une ou deux secondes après son premier rendu. Les rapports ne sont pas envoyés pendant les builds.

Modifications du tableau de bord

Les traductions automatiques ne modifient pas l'époque de cache d'une langue. Les modifications du tableau de bord le font, et deux mécanismes les transportent vers votre serveur.

Poussée. Universally envoie une requête POST signée à https://{votre nom de domaine de projet}/_universally/revalidate lorsque vous :

  • modifiez une chaîne, la vérifiez ou la désavouez, ou la supprimez
  • restaurez une révision ou retraduisez
  • vérifiez ou supprimez en masse
  • supprimez une chaîne source
  • videz le cache

L'intégration répond à la requête avant le routage Astro, vous n'ajoutez donc aucune page ni route. La poussée expire après 3 secondes et les échecs ne sont que journalisés, donc pour les modifications instantanées, le point de terminaison doit être accessible depuis Internet. Les poussées sont envoyées uniquement en mode SDK.

Sondage. Après une réponse localisée, l'intégration vérifie si l'époque de cache d'une langue a changé, au plus une fois par revalidateSeconds (60 par défaut) par langue. La vérification demande une seule ligne. En cas de changement, elle recharge cette langue et journalise universally: reloaded N translations for X at cache epoch E. Définir revalidateSeconds à 0 désactive le sondage, et le serveur conserve alors ses traductions jusqu'à ce qu'une poussée arrive ou qu'il redémarre. Voir Options d'intégration Astro.

Les modifications que vous apportez sur l'écran Traductions voyagent de cette manière. Voir Modifier les traductions manuellement.

Quand les traductions se chargent

Événement Ce qui se charge
Démarrage du serveur de développement Catalogue de chaque langue
Démarrage de la build Catalogue de chaque langue
Première requête localisée sur un serveur qui n'a exécuté ni l'un ni l'autre (par exemple, le serveur Node construit) Catalogue de chaque langue. Cette requête attend qu'il soit prêt.
Poussée ou époque de cache modifiée Les langues qui ont changé

Si une langue ne parvient pas à se charger, le journal affiche universally: could not preload .... Cette langue n'est ni retentée ni interrogée tant que le processus n'a pas redémarré. Corrigez donc la cause et redémarrez.

Langues

La liste des langues est lue une seule fois, lorsque votre configuration Astro s'exécute. L'ajout d'une langue ou l'activation de son commutateur Live n'envoie aucune notification push. Redémarrez donc le serveur de développement ou reconstruisez avant que le nouveau préfixe ne fonctionne.

Sites statiques

Une build statique n'a pas de code serveur après la build : pas d'interrogation et pas de point de terminaison push. Les modifications du tableau de bord n'apparaissent qu'après reconstruction et redéploiement. La build elle-même envoie tout ce qu'elle a manqué en un seul appel bloquant, puis affiche N nouvelles chaînes traduites. Reconstruisez pour les inclure. Ainsi, une deuxième build insère ces chaînes dans le HTML.

Plusieurs instances serveur

Chaque instance conserve son propre catalogue en mémoire. Une notification push atteint l'instance qui y répond, et les autres se mettent à jour par interrogation. Conservez revalidateSeconds à un délai qui vous convient.

Lorsque la limite de mots est atteinte

Une fois les mots prépayés du projet épuisés, Universally ne renvoie que les chaînes qu'il détient déjà. L'intégration enregistre universally: word limit reached, {variant} keeps serving source text une fois par langue. Les chaînes traduites continuent d'être servies. Après avoir ajouté des mots, les chaînes manquantes sont à nouveau signalées lors de leur prochaine rendu. Voir Limites d'utilisation.

Est-ce que cela vous a été utile ?