Uno stack headless possiede già il suo rendering, quindi Universally si inserisce come servizio di traduzione che il tuo server chiama piuttosto che qualcosa che si trova di fronte al tuo sito. Invii testo, ricevi testo indietro e decidi dove viene archiviato e quando viene aggiornato.
L'API e le chiavi sono trattate in Integra tramite API. Questa pagina riguarda quali parti di essa si adattano a un frontend disaccoppiato.
Quale endpoint si adatta
L'API Translator ne ha due che contano qui, e le configurazioni headless di solito preferiscono la prima:
/v1/translate/strings |
/v1/translate/html |
|
|---|---|---|
| Invii | fino a 500 stringhe per richiesta | una pagina renderizzata |
| Ricevi indietro | una mappa dalla stringa sorgente alla traduzione | il documento tradotto |
| Si adatta | contenuti provenienti da un CMS come campi | pagine renderizzate dal server che stavi per restituire |
Con l'endpoint delle stringhe, il tuo CMS rimane la fonte di verità. Recupera i campi di cui hai bisogno, invia i valori, archivia ciò che ricevi indietro con le stesse chiavi. Nulla deve indovinare quale parte di una pagina è contenuto.
curl -X POST https://translator.universally.com/v1/translate/strings \
-H "X-API-Key: $UNIVERSALLY_KEY" \
-H "Content-Type: application/json" \
-d '{"strings":["Add to cart","Out of stock"],"targetLanguage":"es"}'
La risposta contiene le traduzioni più un blocco di metadati: stringsReceived, stringsTranslated, skippedStrings e limitReached. Leggi limitReached ad ogni risposta. Quando è true la risposta è parziale.
Una stringa che non è stata tradotta è assente da translations, non restituita invariata. Cerca ogni chiave con un fallback al tuo testo sorgente (translations[s] ?? s), altrimenti renderizzerai undefined. Vedi Traduci stringhe.
Le richieste ripetute per testo già tradotto vengono servite dallo storage e non comportano costi aggiuntivi. Inviare fresh: true traduce di nuovo e restituisce il risultato senza archiviarlo, quindi conserva la tua copia di qualsiasi cosa ricevi in quel modo: una richiesta successiva senza fresh restituisce comunque la traduzione archiviata. Anche queste chiamate non contano nel tuo totale di parole.
Mantieni la chiave lato server
La chiave del progetto non deve raggiungere il browser. Qualsiasi cosa in JavaScript frontend, in un bundle mobile o in un repository è pubblica, e la chiave può spendere il tuo totale di parole. Chiama l'API dal tuo server o dal tuo build step, quindi servi il risultato archiviato ai client. Vedi Trova la tua chiave API.
Cosa possiedi
Il plugin WordPress fa diverse cose oltre a chiamare un endpoint. Tramite l'API sono tue:
- Un URL per lingua. Qualcosa deve instradare
/es/pricing/al tuo rendering spagnolo. Universally non intercetta il traffico. Vedi Sottodomini e sottodirectory per il formato da copiare. - Archiviazione e invalidazione. Conserva le traduzioni accanto ai tuoi contenuti e reinvia una stringa quando la sorgente cambia. Tradurre ad ogni richiesta è lento e inutile.
- Lo switcher di lingua. Nessun widget viene iniettato, quindi il markup e lo stato sono tuoi.
- hreflang e sitemap. Il plugin WordPress emette alternati hreflang; il tuo front end emette il proprio
<head>, quindi questi link fanno parte dell'integrazione. Vedi tag hreflang.
Cosa funziona ancora senza WordPress
Tutto ciò che risiede nella dashboard anziché nel plugin si applica ai tuoi contenuti allo stesso modo:
- Regole del glossario, applicate al momento della traduzione, in modo che i nomi dei marchi rimangano anche nel percorso API.
- Modifica manualmente le traduzioni per correggere una stringa specifica.
- Varianti linguistiche e targeting regionale, poiché una variante viene scelta dal codice della lingua che invii.