Documentazione Universally

Guide passo-passo, suggerimenti SEO multilingue e best practice per aiutarti a tradurre e scalare il tuo sito WordPress.

Aggiornamenti di traduzione in Astro

Una nuova stringa viene tradotta in background dopo la prima pagina che la utilizza, e una modifica alla dashboard raggiunge il tuo server in esecuzione tramite un push firmato o tramite un controllo ogni 60 secondi per lingua. Un sito statico recepisce entrambi solo quando ricostruisci.

Nuove stringhe

  1. Una pagina chiama t() con testo che non ha traduzione. Il visitatore riceve il testo sorgente.
  2. Dopo la risposta, l'integrazione segnala le stringhe mancanti a Universally in blocchi da 500. Sui runtime che offrono waitUntil, il report viene completato dopo l'invio della risposta.
  3. Universally restituisce le traduzioni che ha già e traduce il resto in background.
  4. Le nuove traduzioni raggiungono il tuo server con un report successivo (una stringa mancante viene segnalata di nuovo al rendering successivo) o quando quella lingua viene ricaricata.

In pratica, una nuova stringa viene tradotta uno o due secondi dopo il suo primo rendering. I report non vengono inviati durante le build.

Modifiche alla dashboard

Le traduzioni automatiche non modificano l'epoca della cache di una lingua. Le modifiche alla dashboard sì, e due meccanismi le portano al tuo server.

Push. Universally invia un POST firmato a https://{il tuo dominio del progetto}/_universally/revalidate quando:

  • modifica una stringa, la verifica o la annulla, o la elimina
  • ripristina una revisione o ritraduce
  • verifica o elimina in blocco
  • elimina una stringa sorgente
  • svuota la cache

L'integrazione risponde alla richiesta prima del routing di Astro, quindi non aggiungi alcuna pagina o route. Il push va in timeout dopo 3 secondi e i fallimenti vengono solo registrati, quindi per modifiche istantanee l'endpoint deve essere raggiungibile da Internet. I push vengono inviati solo in modalità SDK.

Polling. Dopo una risposta localizzata, l'integrazione verifica se l'epoca della cache di una lingua è cambiata, al massimo una volta ogni revalidateSeconds (60 per impostazione predefinita) per lingua. Il controllo richiede una singola riga. In caso di modifica, ricarica quella lingua e registra universally: ricaricate N traduzioni per X all'epoca della cache E. Impostare revalidateSeconds a 0 disattiva il polling, e il server mantiene le sue traduzioni fino all'arrivo di un push o al suo riavvio. Vedi Opzioni di integrazione Astro.

Le modifiche apportate nella schermata Traduzioni viaggiano in questo modo. Vedi Modifica le traduzioni manualmente.

Quando le traduzioni vengono caricate

Evento Cosa viene caricato
Avvio del server di sviluppo Catalogo di ogni lingua
Avvio della build Catalogo di ogni lingua
Prima richiesta localizzata su un server che non ha eseguito nessuno dei due (ad esempio il server Node compilato) Catalogo di ogni lingua. La richiesta attende il suo caricamento.
Push o epoca della cache modificata Le lingue che sono cambiate

Se una lingua non viene caricata, il log mostra universally: could not preload .... Quella lingua non viene ritentata o interrogata finché il processo non viene riavviato, quindi correggi la causa e riavvia.

Lingue

L'elenco delle lingue viene letto una sola volta, quando viene eseguita la configurazione di Astro. L'aggiunta di una lingua o l'attivazione del suo interruttore Live non invia alcun push, quindi riavvia il server di sviluppo o ricompila prima che il nuovo prefisso funzioni.

Siti statici

Una build statica non ha codice server dopo la build: nessun polling e nessun endpoint di push. Le modifiche alla dashboard appaiono solo dopo aver ricompilato e ridistribuito. La build stessa invia tutto ciò che ha perso in una chiamata bloccante, quindi stampa N nuove stringhe tradotte. Ricompila per includerle., quindi una seconda build inserisce tali stringhe nell'HTML.

Diverse istanze server

Ogni istanza mantiene il proprio catalogo in memoria. Un push raggiunge l'istanza che risponde, e le altre si aggiornano tramite polling. Mantieni revalidateSeconds a un intervallo che sei disposto ad attendere.

Quando viene raggiunto il limite di parole

Una volta utilizzate le parole prepagate del progetto, Universally restituisce solo le stringhe che già possiede. L'integrazione registra universally: word limit reached, {variant} keeps serving source text una volta per lingua. Le stringhe tradotte continuano a essere servite. Dopo aver aggiunto parole, le stringhe mancanti vengono segnalate di nuovo al loro prossimo rendering. Vedi Limiti di utilizzo.

È stato utile?