GoLocal!
Guida tecnica

Guida completa all'installazione

Tutto ciò di cui hai bisogno per installare, configurare e utilizzare GoLocal! per rendere la tua app Bubble.io multilingue.

📦 Plug-in Bubble gratuito + abbonamento GoLocal! SaaS (chiave API richiesta)
Corrente Tasto libero/API Plug-inDurata 4.1.23

Dati Bubble sicuri, traduzione stabile dell'interfaccia utente e logica multilingue esplicita

Aggiorna il plugin da Bubble Plugin scheda prima di testare le funzionalità riportate di seguito. La configurazione, le traduzioni e la fatturazione di Project rimangono collegate al progetto GoLocal. Gli sviluppatori di app non devono incollare o mantenere uno script nell'intestazione HTML di Bubble; la versione del plugin pubblicata contiene il runtime supportato.

I dati modificabili rimangono intatti

Ingressi ordinari, ingressi multilinea, editor Quill e altre aree contenteditable non vengono tradotti al contrario mentre un utente digita.

Esclusioni di contenuti riutilizzabili

Proteggi valori di database immessi dall'utente e celle di gruppi ripetuti con do_not_translate_selectors invece di ID HTML duplicati.

Ricerca inversa automatica sicura

Bubble SearchBox, Dropdown, legacy MultiDropdown e Select2 MultiDropdown possono far corrispondere le scelte tradotte ai valori della lingua di origine.

Elemento GoLocal Query

Utilizzare un elemento GoLocal Query indipendente per input ordinario solo quando tale input guida una ricerca di testo, una condizione o un filtro API nella lingua di origine.

Leggi la guida per sviluppatori GoLocal Query →

1
Installa il plugin

GoLocal! è disponibile come file plug-in gratuito sul mercato Bubble.io. Non paghi nulla per installarlo: il plugin stesso costa $ 0. La fatturazione si applica solo quando lo colleghi a un progetto GoLocal! con una chiave API.

a

Apri l'editor Bubble → scheda Plugin.

b

Fai clic su "+ Aggiungi plugin" e cerca "GoLocal" o "Traduttore automatico".

c

Installa GoLocal! - Traduttore automatico. Se è già installato, aggiornalo all'ultima versione pubblicata.

d

Trascina l'elemento GoLocal! su qualsiasi pagina (in genere un'intestazione riutilizzabile). L'elemento è invisibile.

💡
Migliore pratica: Posiziona GoLocal! su a elemento riutilizzabile (intestazione/piè di pagina) che appare su ogni pagina.

2
Crea il tuo account e Project

Per attivare il plugin è necessario un file Tasto API. Le chiavi API vengono generate nella dashboard GoLocal! quando crei un progetto.

un
Vai a goinglocal.online/dashboard e accedi con Google. Istantaneo: senza moduli.
b
Fare clic "Nuovo Project". Inserisci il nome del progetto, il dominio, la lingua di origine e le lingue di destinazione.
c

A Prova gratuita di 5 giorni si avvia automaticamente. Nessuna carta di credito richiesta. Il tuo Tasto API viene generato immediatamente.

d

Copia la chiave API: ti servirà durante la configurazione del plugin in Bubble.

⚠️
Il dominio deve corrispondere esattamente. La chiave API è associata al dominio specificato. Se la tua app Bubble funziona su myapp.bubbleapps.io, inserisci esattamente quello.

3
Configura il plugin

Fare clic sull'elemento GoLocal!. Al minimo, imposta un campo:

Configurazione minima richiesta:

api_key→ incolla la chiave API dal tuo progetto GoLocal!

Con solo la chiave API, GoLocal! carica la configurazione del progetto, utilizza il browser del visitatore o la selezione del widget salvata, traduce il testo dell'interfaccia utente visibile e mostra il cambio di lingua.

4
Campi plugin: riferimento

api_keyObbligatorio

La chiave API del tuo progetto dalla dashboard GoLocal!.

Legato al dominio: sicuro da includere nel codice lato client.

source_languageFacoltativo

Codice di due lettere della lingua originale della tua app. Esempi: en, uk, de.

Normalmente lascia questo campo vuoto quando la lingua di origine è già configurata nel progetto GoLocal. Impostalo solo quando è necessario sovrascrivere intenzionalmente il valore del progetto/lavoratore.

target_languageFacoltativo

Normalmente lascia questo campo vuoto. Il widget e la selezione persistente del visitatore controllano la lingua attiva durante i caricamenti della pagina.

Un valore hardcoded come fr forza quella lingua ogni volta che l'elemento viene inizializzato e può sovrascrivere la scelta del visitatore. Associa un valore dinamico solo quando la tua app Bubble possiede intenzionalmente lo stato della lingua e fornisce un codice di lingua stabile su ogni pagina.

enabledFacoltativo

Casella di controllo che controlla se la traduzione è attiva. Predefinito: controllato.

show_widgetFacoltativo

Mostra il widget di cambio lingua integrato. Predefinito: controllato. Disattivalo solo quando l'app Bubble fornisce i propri controlli e chiamate linguistici switch_language.

widget_positionFacoltativo

Posizione del widget: bottom-right (predefinito), bottom-left, top-right, top-left.

dataset_1Facoltativo

Pretraduci il tuo database Bubble per il caricamento istantaneo.

Formato strutturato (consigliato):

// Configurazione Bubble:

Effettua una ricerca per (Categorie) :format as text

Contenuto: {Il titolo di questa categoria; Il nome di questa categoria; Il corpo di questa categoria}

Delimitatore: ,

// Aggiungi un altro tipo:

:append Esegui una ricerca per (Cures) :format as text

Contenuto: {Il titolo di questa cura; Il nome di questa cura; La prescrizione di questa cura}

Delimitatore: ,

Campi all'interno { } separati da ; — blocchi separati da ,. Vedi Set di dati per i dettagli.

do_not_translate_idsFacoltativo

ID elemento separati da virgole a non tradurre mai. La specifica di un ID gruppo/contenitore esclude tutti i figli.

Esempio: user-bio, code-block, brand-section

Gli ID HTML devono essere univoci. Non riutilizzare lo stesso ID nelle celle dei gruppi ripetuti; usa invece do_not_translate_selectors con una classe.

do_not_translate_selectorsFacoltativo

Selettori CSS per contenuti riutilizzabili o ripetibili che devono rimanere esattamente come archiviati. Un elemento corrispondente e tutti i relativi elementi secondari sono esclusi.

Esempi: .gl-user-content, [data-user-content], [id^="gl-user-content-"]

Consigliato per valori di database immessi dall'utente e gruppi ripetuti. Un selettore di classe o prefisso ID può abbinare in modo sicuro molte righe senza creare ID HTML duplicati.

private_translate_idsFacoltativo

Elementi che sono tradotti ma traduzioni non vengono memorizzati nella cache a livello globale. Utilizzare per i dati per utente (nomi, indirizzi).

Esempio: user-name, order-address

Se il contenuto deve rimanere esattamente come lo ha inserito l'utente, non utilizzare questo campo. Escluderlo invece con do_not_translate_selectors.

5
Set di dati: traduzione del database Bubble

La maggior parte delle app Bubble visualizza i dati dal database. Senza set di dati, il contenuto dinamico viene tradotto alla prima visualizzazione, causando un ritardo visibile. I set di dati pretraducono tutto per caricamento istantaneo.

Formato 1: strutturato: per elementi con più campi (consigliato)

Avvolgi ogni oggetto {}, separare i campi con ; (punto e virgola), utilizzare , come delimitatore tra gli elementi.

// Bubble: effettua una ricerca per (Categorie) :format as text

Contenuto: {Il titolo di questa categoria; Il nome di questa categoria; Il corpo di questa categoria}

Delimitatore: ,

// Aggiungi: cerca (Cures) :format as text

Contenuto: {Il titolo di questa cura; Il nome di questa cura; La prescrizione di questa cura}

Delimitatore: ,

// Risultato: {Salute;Benessere;Guida...},{Bellezza;Cura della pelle;Routine...},{Aspirina;Sollievo;Prendi 2x...}

Chiave: Campi all'interno {} diviso per ; - blocchi divisi per , — le virgole nel testo sono sicure.

Formato 2: Semplice: per elenchi a valore singolo

Per valori brevi senza virgole (nomi di categorie, tag):

Contenuto: Il nome di questa categoria Delimitatore: ,

// Output: elettronica, abbigliamento, libri, giocattoli

Importante: Se il testo può contenere virgole, utilizzare sempre il formato strutturato con {field;field} avvolgimento.

💡
Non è necessario archiviare le traduzioni nel database Bubble. GoLocal! traduce e memorizza nella cache tutto automaticamente. Il tuo database rimane in una lingua.
💡
La ricerca multilingue ha un ambito intenzionale. La ricerca inversa automatica è disponibile per Bubble SearchBox, Dropdown, legacy MultiDropdown e Select2 MultiDropdown. Per un input normale che filtra il testo nella lingua di origine, aggiungine uno GoLocal Query elemento e usalo normalized_query solo nel filtro o nella condizione. Consulta la guida completa su Bubble.

6
Bubble Stati, eventi e azioni

L'elemento principale GoLocal! possiede la traduzione della pagina ed espone la lingua attiva a Bubble. Utilizza i suoi stati nelle condizioni e i suoi eventi per avviare i flussi di lavoro nel punto corretto del ciclo di vita della traduzione.

1. Runtime pronto

translator_ready = yes significa GoLocal inizializzato. Ciò non significa che ogni elemento dinamico Bubble ha terminato la traduzione.

2. La lingua è cambiata

language_changed si attiva quando cambia la lingua attiva. Leggi current_language qui.

3. Passaggio completato

translation_complete si attiva dopo il completamento di un batch di traduzione. Il contenuto dinamico può creare batch successivi.

Stati esposti
current_languagetext

Il codice della lingua attiva di due lettere. Usalo per collegamenti PDF, condizionali Bubble e interfaccia utente della lingua di proprietà dell'app.

detected_languagetext

La lingua di origine/browser rilevata segnalata dal runtime.

translator_readyyes/no

Sì, dopo l'inizializzazione del runtime di traduzione.

is_translatingyes/no

Sì mentre GoLocal sta elaborando un passaggio di traduzione.

translation_completeyes/no

Flag di completamento per il passaggio più recente.

total_textsnumber

Numero di elementi di testo osservati nella sessione di runtime corrente.

cached_local / cached_bundle / cached_servernumber

Contatori della cache diagnostica. Utile per supporto e controlli delle prestazioni.

tradotto / errori / tokens_usednumber

Traduzione runtime e contatori di errori.

last_error / preload_statustext

L'ultimo errore di runtime e lo stato di precarico per la diagnostica.

Azioni degli elementi

  • switch_language — passare al campo di azione richiesto target_lang, per esempio fr.
  • Start_translation — iniziare o riprendere a osservare e tradurre.
  • Stop_translation - smetti di osservare e tradurre fino al riavvio.
  • rescan_dom — scansiona in modo esplicito il contenuto visualizzato dopo un popup Bubble, un elemento riutilizzabile o un aggiornamento di gruppi ripetuti.

Esempio: mostra un collegamento PDF in francese

Crea una condizione Bubble sul collegamento o sul gruppo: When GoLocal! A's current_language is "fr". Se è necessario eseguire un flusso di lavoro quando il visitatore cambia lingua, utilizzare When GoLocal! A language_changed. Non è necessario aspettare translation_complete solo per leggere la lingua selezionata.

⚠️
GoLocal Query è un elemento separato. Non sostituisce l'elemento principale GoLocal! e i suoi stati non fanno parte dell'elemento principale. Aggiungilo solo per un input normale specifico la cui logica Bubble downstream richiede un valore di testo nella lingua di origine. Apri la guida completa alle query.

7
Dati utente, moduli e gruppi ripetuti

GoLocal traduce il testo dell'interfaccia, ma i dati digitati o creati dai tuoi utenti devono rimanere stabili. Il runtime corrente protegge input ordinari, input multilinea, editor Quill e altro contenteditable aree mentre una persona digita.

Sicuro per impostazione predefinita

  • • I valori di input e input multilinea vengono salvati esattamente come digitati.
  • • Quill .ql-editor e altre aree modificabili vengono saltate durante la digitazione.
  • • E-mail, password, numeri, date, ID e file devono sempre utilizzare i valori Bubble originali.

Il display necessita di un'esclusione

Quando il contenuto utente salvato viene successivamente visualizzato da un normale elemento di testo Bubble, GoLocal non può sapere se si tratta di una copia dell'interfaccia utente o di dati utente. Contrassegna l'elemento di visualizzazione o il suo contenitore più piccolo come zona di non traduzione.

Configurazione consigliata del gruppo ripetuto

  1. 1. Selezionare solo l'elemento Testo che visualizza il contenuto dell'utente. Non escludere l'intero gruppo ripetuto se i pulsanti, le intestazioni e le etichette statiche devono essere comunque tradotti.
  2. 2. Assegna a ciascuna riga un ID dinamico univoco.
    ID univoco della cosa della cella gl-user-content-Current
  3. 3. Aggiungi un selettore all'elemento GoLocal.
    do_not_translate_selectors = [id^="gl-user-content-"]

Se la tua configurazione Bubble o un elemento riutilizzabile può applicare una classe personalizzata, .gl-user-content è ancora più semplice. Aggiungi quella classe una volta a do_not_translate_selectors.

Indicatori di non traduzione supportati

Il tempo di esecuzione rispetta data-tr-skip, data-no-translate, translate="no"e nidificato .notranslate elementi. I campi di selezione ID e CSS configurati rimangono il metodo nativo Bubble più semplice.

Salta rispetto alla traduzione privata

do_not_translate_* conserva il valore originale. private_translate_ids traduce comunque il valore ma impedisce una cache globale condivisa. Utilizza la traduzione privata solo quando il contenuto deve essere realmente tradotto.

⚠️
Non duplicare mai un ID HTML in un gruppo ripetuto. Un ID duplicato può far sì che un selettore corrisponda in modo imprevedibile o escluda un'area più ampia del previsto. Utilizza una classe, un attributo di dati o un ID dinamico contenente l'ID univoco della cosa.
💡
Icone dei materiali e controlli dei glifi personalizzati: alcune icone Bubble o di terze parti vengono renderizzate da nomi di glifi letterali come home o check_box. Se un'icona è supportata da testo, escludi il contenitore di icona/controllo più piccolo in modo che la parola chiave del glifo non venga mai tradotta.

8
Redattore di traduzione e correzioni manuali

Utilizza l'editor di traduzione per testi fissi del prodotto: etichette di navigazione, intestazioni, pulsanti, testo della guida e altre frasi che dovrebbero avere una traduzione rivista. Gli inserimenti manuali sono bloccati e non vengono sostituiti da una successiva traduzione automatica.

Buona correzione manuale

Fonte Piano di aggiornamento → frase del prodotto francese rivista Migliorare il piano. Questa è una copia stabile dell'interfaccia e appartiene all'editor.

Non correggere i dati utente una riga alla volta

Un nome creato dal cliente come Lavoro a domicilio dovrebbe essere escluso nell'elemento di visualizzazione Bubble. L'aggiunta di migliaia di traduzioni di identità non è un sostituto sicuro di una zona di non traduzione.

  1. 1. Apri il progetto nella dashboard di GoLocal e scegli Traduzioni.
  2. 2. Cerca la frase sorgente esatta e la coppia linguistica.
  3. 3. Modificare il valore target oppure utilizzare Aggiungi traduzione per una nuova frase sorgente esatta.
  4. 4. Salva. La voce è contrassegnata manuale, la versione del bundle cambia e il runtime aggiorna il dizionario del progetto.
  5. 5. Ritestare l'esatto percorso Bubble in cui viene visualizzata la frase. Utilizzare rescan_dom solo se la frase appare dopo un rendering insolito di terze parti.
💡
La coppia esatta della lingua di partenza è importante. Se la lingua di origine del progetto è l'inglese, aggiungi la coppia manuale come en → fr, no auto → fr. Il runtime richiede la coppia di origini risolte del progetto.

9
Come funziona la traduzione

GoLocal osserva il Bubble DOM renderizzato, applica prima le traduzioni dal bundle del progetto e dalla cache locale e richiede solo le frasi mancanti o modificate. Continua a osservare popup, elementi riutilizzabili e gruppi ripetuti che Bubble renderizza in seguito.

1

Caricamento iniziale della pagina

Il runtime risolve le lingue di origine e di destinazione, carica il pacchetto di progetto corrente, esegue la scansione del testo visibile dell'interfaccia utente e rivela la pagina attraverso il flusso anti-sfarfallio integrato.

2

Traduzioni memorizzate nella cache

Le frasi conosciute vengono applicate dal bundle o dalla cache del browser senza rigenerarle. Una versione del bundle modificata invalida i valori memorizzati nella cache non aggiornati.

3

Contenuti Bubble dinamici

L'osservatore DOM rileva popup appena renderizzati, elementi riutilizzabili, gruppi condizionatamente visibili e celle di gruppi ripetuti. rescan_dom è un fallback esplicito.

L'anti-sfarfallio è integrato nel runtime del plug-in pubblicato. Gli sviluppatori di app aggiornano il plug-in dalla scheda Plugin di Bubble; non incollano uno script GoLocal nell'intestazione HTML dell'app. Il timeout di sicurezza rivela sempre la pagina anche se una richiesta di rete fallisce.

10
Risoluzione dei problemi e test di rilascio

La pagina viene reimpostata su una lingua

Lascia target_language vuoto su ogni pagina e sull'elemento GoLocal riutilizzabile a meno che la tua app Bubble non possieda deliberatamente la lingua. Un valore hardcoded viene riapplicato durante l'inizializzazione.

Manca il widget

Conferma che show_widget sia selezionato, che sia installata la versione più recente del plug-in e che solo un elemento GoLocal previsto controlli la pagina. Quindi prova fuori dalla modalità debugger passo passo di Bubble.

Un popup o una nuova riga di un gruppo ripetuto rimane non tradotta

Attendi che l'elemento diventi visibile. L'osservatore normalmente lo trova automaticamente; se un elemento di terze parti viene visualizzato in modo insolito, esegui rescan_dom dopo la visualizzazione del popup o del gruppo.

L'input o il testo RTF cambiano durante la digitazione

Aggiorna il plug-in, conferma il runtime corrente e verifica che il flusso di lavoro di salvataggio legga il valore di input/editor originale, non il testo visualizzato tradotto o normalized_query.

Il testo francese creato dall'utente viene nuovamente tradotto

Escludere la visualizzazione del testo/contenitore tramite do_not_translate_selectors. Proteggi il valore dinamico più piccolo, non tutta l'interfaccia utente statica attorno ad esso.

Una correzione manuale ritorna su automatica

Gli inserimenti manuali correnti sono bloccati. Conferma di aver modificato lo stesso testo di origine e l'esatta combinazione linguistica utilizzata dal runtime, quindi invia il progetto, il percorso, la frase e la durata del test al supporto.

I nomi dei mesi e dei giorni rimangono in inglese

Il browser nativo o il selettore di date Bubble Chrome seguono le impostazioni locali del browser/controllo. GoLocal traduce le etichette circostanti ma non riscrive l'interfaccia utente interna del selettore di date.

Chrome offre la propria traduzione della pagina

Il plugin contrassegna già il documento come notranslate per la traduzione del browser consentendo al contempo l'esecuzione di GoLocal stesso. Aggiorna il plugin; non aggiungere una seconda estensione o script di traduzione.

Il testo va a capo in modo diverso dopo la traduzione

GoLocal conserva la tipografia Bubble. Le frasi tradotte possono essere più lunghe, quindi verifica Bubble larghezza minima, larghezza massima, altezza di adattamento, overflow e regole reattive ad ogni punto di interruzione.

Lista di controllo di accettazione Bubble

  • ✓Cambia sorgente → destinazione → sorgente senza aggiornare.
  • ✓Naviga tra tutte le pagine Bubble e le intestazioni riutilizzabili.
  • ✓Apri i popup e carica le righe dei gruppi ripetuti dopo il caricamento della pagina.
  • ✓Digita, incolla, modifica, salva e riapri i campi normali e rich-text.
  • ✓Testare un valore dei dati utente escluso all'interno di ciascun gruppo ripetuto.
  • ✓Prova la ricerca SearchBox, Dropdown, legacy/Select2 MultiDropdown.
  • ✓Testare ogni collegamento condizionale e PDF/risorsa current_language.
  • ✓Testare nuovamente Chrome, Safari, larghezza mobile e una sessione privata.
💡
Evidenze utili a supporto: inviare l'esatto URL live o di test della versione, nome del progetto, lingue di origine e di destinazione, tipo di elemento Bubble interessato, passaggi da riprodurre, ora di test con fuso orario, screenshot e righe della console che iniziano con [GoLocal v4].

11
Prezzie fatturazione

Tre piani, tutti con parole di traduzione illimitate e lingue di destinazione illimitate.

CaratteristicaStarterProBusiness
Prezzo mensile$15/mo$35/mo$89/mo
Prezzo annuale$149/yr$349/yr$890/yr
Lingue di destinazioneIllimitatoIllimitatoIllimitato
Limite MAU30K150K1M
Proespelle112

MAU

Visitatori unici che hanno visto le traduzioni. I bot sono stati filtrati. 10% di eccedenza gratuita, quindi $ 3/10.000 extra.

Lingue

Tutti i piani a pagamento includono lingue di destinazione illimitate senza costi aggiuntivi per lingua.

Prova gratuita di 5 giorni

Ogni nuovo progetto inizia con una prova gratuita. Nessuna carta di credito richiesta.

12
Partner Program

Guadagna consigliando GoLocal!

Condividi il tuo link di riferimento: guadagna commissioni ricorrenti per ogni cliente pagante che porti.

1

Iscriviti come partner

Dashboard → Scheda Partner → "Unisciti al partner Program". Ottieni il tuo link di riferimento univoco.

2

Condividi il tuo collegamento

Blog, YouTube, forum Bubble, social media, tutorial o direttamente con i clienti.

3

Guadagna commissioni

Commissione ricorrente per tutta la durata dell'abbonamento di ciascun utente segnalato.

4

Fatti pagare

Richiedi il pagamento tramite bonifico bancario o PayPal quando il saldo raggiunge la soglia minima.

💡
Perfetto per le agenzie Bubble: Consiglia GoLocal! ai clienti. Tu guadagni un reddito passivo, loro ottengono traduzioni professionali.

Pronto a rendere la tua app multilingue?

Installa il plug-in gratuito, crea un progetto, incolla la chiave API e la tua app Bubble parla tutte le lingue.