Il concetto centrale
Un'app Bubble normalmente ne ha uno linguaggio canonico in cui sono state create le etichette del database, i valori di visualizzazione Option Set e le condizioni di testo codificate. GoLocal potrebbe mostrare tali valori in un'altra lingua, ma la logica Bubble può comunque aspettarsi il valore canonico.
Proespulsione origine
Inglese
Categoria memorizzata: Notizie
Il visitatore vede
francese
Etichetta visibile: Actualités
Bubble effettua ricerche
Novità
Valore sorgente normalizzato
normalized_query viene utilizzato solo dove Bubble richiede esplicitamente il testo nella lingua di origine.Quale elemento GoLocal dovrei utilizzare?
Il plugin contiene due diversi elementi Bubble non visivi. Risolvono diversi problemi. La maggior parte delle pagine necessita del file main GoLocal! elemento; necessitano solo le pagine con uno specifico problema di ricerca di testo GoLocal Query.
Traduttore richiesto
GoLocal!
Questo è il principale motore di traduzione. Carica il tuo progetto, traduce il contenuto della pagina, visualizza il widget della lingua e pubblica la lingua corrente e gli eventi di traduzione.
- Di solito inserisci un'istanza in un'intestazione riutilizzabile o in un altro elemento condiviso dalla pagina.
- Utilizza i relativi campi per la chiave API, il widget, gli ID/selettori esclusi e il comportamento di origine/destinazione.
- Utilizza i suoi stati ed eventi quando Bubble deve conoscere la lingua selezionata o lo stato della traduzione.
Assistente logico opzionale
GoLocal Query
Questo non traduce la pagina e non visualizza un widget. Converte una frase di ricerca immessa dal visitatore nella frase canonica nella lingua di origine della tua app per la logica Bubble.
- Aggiungilo solo quando un input normale deve cercare o confrontare il testo memorizzato nella lingua di origine del progetto.
- Utilizza un elemento Query per input di ricerca indipendente.
- Non utilizzare mai normalized_query per salvare nomi, titoli, descrizioni o messaggi creati dall'utente.
Architettura Bubble preferita
Quando possibile, crea condizioni attorno a cose Bubble, opzioni Option Set, ID univoci o codici stabili, non testo visualizzato tradotto. La traduzione dovrebbe cambiare ciò che una persona vede, non l’identità del documento.
Meglio: confrontare l'oggetto
Current cell's Article's Category
is Category NewsIl visitatore può vedere "Attualità", ma Bubble confronta l'oggetto della categoria o l'opzione Option Set stessa.
Utilizza Query solo per la corrispondenza del testo
Category name contains
GoLocal Query Categories's normalized_queryCiò è appropriato quando il database o una condizione esistente ricerca realmente il testo inglese canonico.
Insieme di categorie di esempio
Ricerca inversa automatica
Tempo di esecuzione gratuito 4.1.23 applica automaticamente la ricerca inversa solo ai controlli Bubble il cui scopo è selezionare o cercare un valore esistente:
Tipi di visitatori: Attualità
Corrispondenze di controllo: Novità
Il visitatore continua a vedere: Attualità
Ogni controllo supportato ha uno stato inverso isolato, inclusi più controlli sulla stessa pagina. Non aggiungere un elemento GoLocal Query solo per duplicare questo comportamento integrato.
Bubble SearchBox
Usalo quando il visitatore cerca e seleziona una cosa Bubble esistente. GoLocal aiuta la frase tradotta a corrispondere al testo canonico utilizzato da SearchBox.
Bubble Menu a discesa
Usalo per una singola selezione da un elenco statico o dinamico esistente. L'opzione selezionata rimane il valore Bubble reale.
Legacy Bubble MultiDropdown
Usalo per selezionare diverse opzioni esistenti nelle vecchie app Bubble. Ogni controllo è normalizzato in modo indipendente.
Select2 MultiDropdown
Usalo per i controlli di selezione multipla ricercabili correnti. Il testo di ricerca digitato può corrispondere alle etichette delle opzioni della lingua di origine senza modificare gli input ordinari.
Utilizzando GoLocal Query
Usa il non visivo GoLocal Query elemento quando un input Bubble ordinario guida intenzionalmente una ricerca di testo, un condizionale nella lingua di origine o un filtro backend/API.
Aggiungi un elemento di query per questo input
Posizionalo una volta sulla pagina o nell'elemento riutilizzabile che possiede l'Input. Non inserirlo in ogni cella del gruppo ripetuto.
Element name: GoLocal Query CategoriesAssocia il suo campo Query
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180Bubble aggiorna automaticamente l'elemento quando cambia il valore di input dinamico. Non è richiesto alcun flusso di lavoro con modifica dell'input.
Utilizzare normalized_query solo nella logica del linguaggio di origine
GoLocal Query Categories's normalized_queryUtilizzare questo valore in un vincolo di gruppo ripetuto, un filtro avanzato, un testo condizionale o un parametro API che prevede l'inglese.
Mantieni i salvataggi e la convalida collegati all'Input
Save Category Name = Input Category Search's valueNon sostituire mai un normale valore di salvataggio, un controllo e-mail, un calcolo numerico o un controllo dei campi obbligatori con normalized_query.
Cosa succede mentre il visitatore digita?
- 1L'ingresso cambia: Bubble passa l'esatto valore di input corrente nel campo Query.
- 2Debounce attende brevemente: I 180 ms predefiniti impediscono una richiesta per ogni singola pressione di un tasto.
- 3La frase più recente è normalizzata: Ad esempio, "Actualités" viene risolto in "News". Le richieste precedenti non completate non possono sovrascrivere il risultato più recente.
- 4Bubble riceve gli stati: normalized_query diventa "Novità", is_normalizing diventa no e l'evento normalizzato si attiva.
- 5Solo la logica prevista lo consuma: Il filtro gruppo ripetuto, condizionale o API utilizza normalized_query; i salvataggi utilizzano ancora l'input originale.
Esempi pratici Bubble
Gruppo ripetitivo
Cerca categorie di articoli in inglese da un input francese
Il visitatore digita Attualità. Il database memorizza Novità. Imposta il vincolo del nome categoria del gruppo ripetuto su:
GoLocal Query Categories's normalized_queryPreferire una selezione di categoria Cosa/Option Set quando disponibile; utilizzare la normalizzazione del testo solo quando il filtro è realmente basato sul testo.
Bubble condizionale
Confrontare con un valore della lingua di origine hardcoded
When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"Se la condizione controlla un flusso di lavoro critico, attendere il completamento della normalizzazione. Per il filtraggio di sola visualizzazione, il fallback non elaborato potrebbe essere sufficiente.
Backend o API
Invia una query in linguaggio canonico a un endpoint
API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is noID, UUID, e-mail, token, date e valori numerici devono ignorare GoLocal Query ed essere inviati senza modifiche.
Soluzione completa per principianti
Filtra gli articoli in base al nome di una categoria tradotta
Supponiamo che l'app sia stata creata in inglese. Il campo del database Nome della categoria contiene Novità, ma digita un visitatore francese Attualità in un ingresso normale.
Input Category SearchGoLocal Query CategoriesGoLocal Query Categories → Query
= Input Category Search's valueSearch for Articles
Category name = GoLocal Query Categories's normalized_queryCreate a new Article's title
= Input Article Title's valueRisultato: il visitatore effettua la ricerca in francese, Bubble trova il valore del database in inglese e nessun testo immesso dall'utente viene riscritto o salvato in un altro formato.
Pagine con più input
Crea un'istanza GoLocal Query per ogni contesto di ricerca indipendente. Ogni istanza ha il proprio valore, timer antirimbalzo, protezione della sequenza, stati ed eventi, quindi un input non può sovrascriverne un altro.
Inserisci la ricerca degli articoliGoLocal Query ArticoliGruppo di ripetizione articoliInserisci la ricerca del clienteClienti GoLocal QueryFiltro cliente APIFiltro tag di inputTag GoLocal QueryCondizione dell'etichettanormalized incendi di eventi.Ciò che deve rimanere intatto
Utilizzare GoLocal Query per
- Testo in formato libero utilizzato per eseguire ricerche nei campi del database in linguaggio canonico
- Condizioni di testo che prevedono una costante inglese
- API Parametri di query il cui backend prevede l'inglese
- Controlli di ricerca di terze parti che espongono la query digitata a Bubble
Non usarlo per
- Nomi, titoli, commenti, descrizioni o tag creati dall'utente salvati
- Quill, contenuto RTF, contenteditable o input multilinea
- E-mail, password, telefoni, ID, date, numeri, file o convalida
- Bubble Cose o oggetti Option Set che possono essere confrontati direttamente
Contenuti utente salvati visualizzati in seguito
Un input protetto può ancora essere sottoposto a rendering in seguito all'interno di un normale elemento testo Bubble. Contrassegna il contenitore di visualizzazione con una classe riutilizzabile come .gl-user-content e aggiungilo all'elemento principale di GoLocal do_not_translate_selectors. Per i gruppi ripetuti, utilizzare una classe/un selettore invece di duplicare lo stesso ID HTML su più righe.
Campi, stati ed eventi
Campi
QuerytextAssocia a un valore di input Bubble visibile.
Enabledyes/noPredefinito sì. Quando disabilitato, il testo tagliato rimane invariato.
Debounce (ms)numberValore predefinito 180. L'intervallo consigliato per la ricerca è 150–250 ms.
Stati
original_querytextValore esatto ricevuto da Bubble prima della normalizzazione.
normalized_querytextValore canonico della lingua di partenza per la logica di ricerca o confronto.
is_normalizingyes/noSì mentre viene risolta la query non vuota più recente.
normalization_foundyes/noSì, quando è stata trovata una mappatura della lingua di origine.
last_errortextMessaggio di guasto tecnico; vuoto durante il normale funzionamento.
normalizzato
Si attiva al termine dell'ultima query. Usalo quando un flusso di lavoro deve attendere o copiare il risultato in uno stato personalizzato.
normalization_failed
Incendi per un guasto tecnico. La query non elaborata rimane come fallback utilizzabile e i dettagli vengono visualizzati in last_error.
Risoluzione dei problemi relativi alle configurazioni comuni di Bubble
normalized_query equivale sempre all'input grezzo
Confermare che l'elemento principale GoLocal! sia presente e pronto, che la lingua di origine del progetto sia configurata correttamente e che il campo Query sia associato all'input previsto. Una frase sconosciuta può utilizzare intenzionalmente il testo grezzo come riserva sicura.
Il gruppo ripetuto mostra brevemente il risultato precedente
Per un filtraggio rigoroso, mostra uno stato di caricamento o esegui la ricerca finale solo quando lo stato is_normalizing dell'elemento query corrispondente è no. La protezione della sequenza impedisce a una richiesta precedente di sostituire un risultato più recente.
Un titolo o una descrizione salvati sono stati modificati
Il flusso di lavoro di salvataggio fa riferimento a normalized_query o al testo visualizzato tradotto. Ripristina il valore originale di input, input multilinea o editor RTF. GoLocal Query serve solo per la corrispondenza logica.
Due ingressi interferiscono tra loro
Assegna a ciascun input di ricerca indipendente il proprio elemento GoLocal Query. Non scambiare dinamicamente un aiutante tra input non correlati.
Un selettore di terze parti non esegue la corrispondenza inversa
Il supporto automatico è limitato a Bubble SearchBox, Bubble Dropdown, MultiDropdown legacy e Select2 MultiDropdown. Se il controllo di terze parti espone il testo digitato a Bubble, collega quel testo a un elemento GoLocal Query dedicato.
Il contenuto utente salvato viene tradotto quando viene visualizzato successivamente
Aggiungi una classe riutilizzabile come .gl-user-content al suo contenitore di visualizzazione e includi quel selettore in do_not_translate_selectors sull'elemento GoLocal! principale.
L'Input è all'interno di un gruppo ripetuto
Non inserire un elemento Query in ogni cella e non duplicare gli ID HTML. Preferisci filtrare il gruppo ripetuto prima di eseguirne il rendering; altrimenti mantieni l'helper query fuori dal gruppo ripetuto e passa al suo interno un singolo valore selezionato/di ricerca.
Lista di controllo per l'accettazione
- 1Cerca lo stesso record in inglese e francese.
- 2Digita rapidamente e conferma che un risultato precedente non ne sostituisce mai uno più recente.
- 3Cancellare l'ingresso e confermare il ripristino del gruppo ripetuto.
- 4Cambia lingua mentre l'Input non è vuoto.
- 5Prova due input di ricerca indipendenti sulla stessa pagina.
- 6Salva un titolo francese con accenti e verifica che il testo esatto sia memorizzato.
- 7Digita e incolla in Quill; nessuno dei due percorsi dovrebbe essere riscritto.
- 8Testa una query sconosciuta e verifica che il fallback non elaborato mantenga la pagina utilizzabile.
- 9Conferma che ogni flusso di lavoro di salvataggio utilizza il valore di input originale.
- 10Conferma che i flussi di lavoro critici nella lingua di origine attendono is_normalizing = no.
Regola della decisione rapida
Visualizzazione e salvataggio utilizzano l'Input. La corrispondenza del testo canonico utilizza GoLocal Query.
Se Bubble può confrontare una cosa, un'opzione Option Set, un ID o un codice stabile, utilizza direttamente quell'oggetto. Aggiungere GoLocal Query solo quando un valore di testo in formato libero tradotto deve essere confrontato con il testo canonico nella lingua di origine.