Das Kernkonzept
Eine Bubble-App verfügt normalerweise über eine kanonische Sprache in dem seine Datenbankbeschriftungen, Option Set-Anzeigewerte und hartcodierten Textbedingungen erstellt wurden. GoLocal zeigt diese Werte möglicherweise in einer anderen Sprache an, aber die Bubble-Logik kann weiterhin den kanonischen Wert erwarten.
Projektquelle
Englisch
Gespeicherte Kategorie: News
Besucher sieht
Französisch
Sichtbares Etikett: Actualités
Bubble sucht
Nachricht
Normalisierter Quellwert
normalized_query wird nur verwendet, wenn Bubble explizit ausgangssprachlichen Text benötigt.Welches GoLocal-Element soll ich verwenden?
Das Plugin enthält zwei verschiedene nicht-visuelle Bubble-Elemente. Sie lösen unterschiedliche Probleme. Die meisten Seiten benötigen die Hauptseite GoLocal! Element; Nur Seiten mit einem bestimmten Textsuchproblem benötigen GoLocal Query.
Erforderlicher Übersetzer
GoLocal!
Dies ist die Hauptübersetzungsmaschine. Es lädt Ihr Projekt, übersetzt den Seiteninhalt, zeigt das Sprach-Widget an und veröffentlicht die aktuellen Sprach- und Übersetzungsereignisse.
- Platzieren Sie normalerweise eine Instanz in einem wiederverwendbaren Header oder einem anderen von der Seite gemeinsam genutzten Element.
- Verwenden Sie seine Felder für den API-Schlüssel, das Widget, ausgeschlossene IDs/Selektoren und das Quell-/Zielverhalten.
- Verwenden Sie seine Zustände und Ereignisse, wenn Bubble die ausgewählte Sprache oder den Übersetzungsstatus kennen muss.
Optionaler Logikhelfer
GoLocal Query
Dadurch wird die Seite nicht übersetzt und es wird kein Widget angezeigt. Es wandelt eine vom Besucher eingegebene Suchphrase in die kanonische Quellsprachphrase Ihrer App für die Bubble-Logik um.
- Fügen Sie es nur hinzu, wenn eine normale Eingabe in der Quellsprache des Projekts gespeicherten Text durchsuchen oder vergleichen muss.
- Verwenden Sie ein Abfrageelement pro unabhängiger Sucheingabe.
- Verwenden Sie normalized_query niemals zum Speichern von vom Benutzer erstellten Namen, Titeln, Beschreibungen oder Nachrichten.
Bevorzugte Bubble-Architektur
Erstellen Sie nach Möglichkeit Bedingungen rund um Bubble-Dinge, Option Set-Optionen, eindeutige IDs oder stabile Codes – nicht übersetzten Anzeigetext. Die Übersetzung sollte das ändern, was eine Person sieht, nicht die Identität des Datensatzes.
Am besten: Vergleichen Sie das Objekt
Current cell's Article's Category
is Category NewsDem Besucher wird möglicherweise „Actualités“ angezeigt, aber Bubble vergleicht die Kategorie-Sache oder die Option Option Set selbst.
Verwenden Sie „Abfrage“ nur für den Textabgleich
Category name contains
GoLocal Query Categories's normalized_queryDies ist sinnvoll, wenn die Datenbank oder eine bestehende Bedingung tatsächlich nach kanonischem englischen Text sucht.
Beispielkategoriesatz
Automatische Reverse-Suche
Kostenlose Laufzeit 4.1.23 Wendet die umgekehrte Suche automatisch nur auf Bubble-Steuerelemente an, deren Zweck darin besteht, einen vorhandenen Wert auszuwählen oder zu suchen:
Besuchertypen: Aktuelles
Kontrollübereinstimmungen: Nachricht
Besucher sehen weiterhin: Aktuelles
Jedes unterstützte Steuerelement verfügt über einen isolierten Umkehrstatus, einschließlich mehrerer Steuerelemente auf derselben Seite. Fügen Sie kein GoLocal Query-Element hinzu, nur um dieses integrierte Verhalten zu duplizieren.
Bubble SearchBox
Verwenden Sie es, wenn der Besucher ein vorhandenes Bubble-Ding sucht und auswählt. GoLocal hilft dabei, dass die übersetzte Phrase mit dem von SearchBox verwendeten kanonischen Text übereinstimmt.
Bubble Dropdown
Verwenden Sie es für eine einzelne Auswahl aus einer vorhandenen statischen oder dynamischen Liste. Die ausgewählte Option bleibt der tatsächliche Bubble-Wert.
Legacy Bubble MultiDropdown
Verwenden Sie es, um mehrere vorhandene Optionen in älteren Bubble-Apps auszuwählen. Jede Kontrolle wird unabhängig normalisiert.
Select2 MultiDropdown
Verwenden Sie es für aktuell durchsuchbare Mehrfachauswahl-Steuerelemente. Eingegebener Suchtext kann mit Optionsbeschriftungen in der Ausgangssprache übereinstimmen, ohne dass normale Eingaben geändert werden.
Verwendung von GoLocal Query
Nutzen Sie das Nicht-Visuelle GoLocal Query Element, wenn eine gewöhnliche Bubble-Eingabe absichtlich eine Textsuche, einen bedingten Quellsprachenfilter oder einen Backend/API-Filter auslöst.
Fügen Sie ein Abfrageelement für diese Eingabe hinzu
Platzieren Sie es einmal auf der Seite oder in dem wiederverwendbaren Element, dem die Eingabe gehört. Platzieren Sie es nicht in jeder Wiederholungsgruppenzelle.
Element name: GoLocal Query CategoriesBinden Sie das Abfragefeld
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180Bubble aktualisiert das Element automatisch, wenn sich der dynamische Eingabewert ändert. Es ist kein Workflow mit geänderter Eingabe erforderlich.
Verwenden Sie normalized_query nur in der Quellsprachenlogik
GoLocal Query Categories's normalized_queryVerwenden Sie diesen Wert in einer Wiederholungsgruppeneinschränkung, einem erweiterten Filter, einer Textbedingung oder einem API-Parameter, der Englisch erwartet.
Halten Sie Speicherungen und Validierungen mit der Eingabe verbunden
Save Category Name = Input Category Search's valueErsetzen Sie niemals einen normalen Speicherwert, eine E-Mail-Prüfung, eine Zahlenberechnung oder eine Pflichtfeldprüfung durch normalized_query.
Was passiert, während der Besucher tippt?
- 1Die Eingabe ändert sich: Bubble übergibt den genauen aktuellen Eingabewert an das Abfragefeld.
- 2Debounce wartet kurz: Der Standardwert von 180 ms verhindert eine Anfrage für jeden einzelnen Tastendruck.
- 3Die neueste Phrase ist normalisiert: Beispielsweise wird „Actualités“ in „News“ aufgelöst. Ältere, noch nicht abgeschlossene Anfragen können das neueste Ergebnis nicht überschreiben.
- 4Bubble empfängt die Zustände: normalized_query wird zu „News“, is_normalizing wird zu „no“ und das normalisierte Ereignis wird ausgelöst.
- 5Nur die beabsichtigte Logik verbraucht es: Der sich wiederholende Gruppen-, Bedingungs- oder API-Filter verwendet normalized_query; Beim Speichern wird weiterhin die ursprüngliche Eingabe verwendet.
Praktische Bubble-Beispiele
Wiederholungsgruppe
Durchsuchen Sie englische Artikelkategorien anhand einer französischen Eingabe
Die Besuchertypen Aktuelles. Die Datenbank speichert Nachricht. Legen Sie die Kategorienamenbeschränkung der Wiederholungsgruppe auf Folgendes fest:
GoLocal Query Categories's normalized_queryBevorzugen Sie eine Kategorie-Sache/Option Set-Auswahl, sofern verfügbar; Verwenden Sie die Textnormalisierung nur, wenn der Filter tatsächlich textbasiert ist.
Bubble bedingt
Vergleichen Sie mit einem fest codierten Wert in der Quellsprache
When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"Wenn die Bedingung einen kritischen Workflow steuert, warten Sie, bis die Normalisierung abgeschlossen ist. Für die reine Anzeigefilterung kann der Rohfallback ausreichend sein.
Backend oder API
Senden Sie eine Abfrage in kanonischer Sprache an einen Endpunkt
API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is noIDs, UUIDs, E-Mails, Token, Daten und numerische Werte sollten GoLocal Query umgehen und unverändert gesendet werden.
Komplette Komplettlösung für Anfänger
Filtern Sie Artikel nach einem übersetzten Kategorienamen
Gehen Sie davon aus, dass die App auf Englisch erstellt wurde. Das Datenbankfeld Kategoriename enthält Nachricht, aber ein französischer Besucher tippt Aktuelles in einen normalen Eingang umwandeln.
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 valueErgebnis: Der Besucher sucht auf Französisch, Bubble findet den englischen Datenbankwert und es wird kein vom Benutzer eingegebener Text umgeschrieben oder in einer anderen Form gespeichert.
Seiten mit mehreren Eingaben
Erstellen Sie eine GoLocal Query-Instanz für jeden unabhängigen Suchkontext. Jede Instanz hat ihren eigenen Wert, Entprell-Timer, Sequenzwächter, Zustände und Ereignisse, sodass eine Eingabe eine andere nicht überschreiben kann.
Geben Sie die Artikelsuche einGoLocal Query ArtikelArtikelwiederholungsgruppeGeben Sie die Kundensuche einGoLocal Query KundenKundenfilter APIEingabe-Tag-FilterGoLocal Query-TagsTag-Bedingungnormalized Ereignisbrände.Was unangetastet bleiben muss
Verwenden Sie GoLocal Query für
- Freiformtext, der zum Durchsuchen von Datenbankfeldern in kanonischer Sprache verwendet wird
- Textbedingungen, die eine englische Konstante erwarten
- API Abfrageparameter, deren Backend Englisch erwartet
- Suchsteuerelemente von Drittanbietern, die ihre typisierte Abfrage für Bubble verfügbar machen
Verwenden Sie es nicht für
- Namen, Titel, Kommentare, Beschreibungen oder vom Benutzer erstellte Tags werden gespeichert
- Quill, Rich-Text, contenteditable oder mehrzeiliger Eingabeinhalt
- E-Mails, Passwörter, Telefonnummern, IDs, Daten, Nummern, Dateien oder Validierung
- Bubble Dinge oder Option Set Objekte, die direkt verglichen werden können
Gespeicherte Benutzerinhalte werden später angezeigt
Eine geschützte Eingabe kann später weiterhin innerhalb eines normalen Bubble-Textelements gerendert werden. Markieren Sie den Anzeigecontainer mit einer wiederverwendbaren Klasse, z .gl-user-content und fügen Sie es dem GoLocal-Hauptelement hinzu do_not_translate_selectors. Verwenden Sie für sich wiederholende Gruppen eine Klasse/einen Selektor, anstatt dieselbe HTML-ID zeilenübergreifend zu duplizieren.
Felder, Zustände und Ereignisse
Felder
QuerytextAn einen sichtbaren Bubble-Eingabewert binden.
Enabledyes/noStandardmäßig ja. Wenn diese Option deaktiviert ist, wird zugeschnittener Text unverändert weitergegeben.
Debounce (ms)numberStandardwert 180. Der empfohlene Suchbereich beträgt 150–250 ms.
Staaten
original_querytextGenauer Wert, der vor der Normalisierung von Bubble empfangen wurde.
normalized_querytextKanonischer Wert der Quellsprache für Such- oder Vergleichslogik.
is_normalizingyes/noJa, während die neueste nicht leere Abfrage aufgelöst wird.
normalization_foundyes/noJa, wenn eine Quellsprachenzuordnung gefunden wurde.
last_errortextTechnische Fehlermeldung; im Normalbetrieb leer.
normalisiert
Wird ausgelöst, nachdem die letzte Abfrage abgeschlossen ist. Verwenden Sie es, wenn ein Workflow warten oder das Ergebnis in einen benutzerdefinierten Status kopieren muss.
normalization_failed
Feuert wegen eines technischen Fehlers. Die Rohabfrage bleibt als verwendbarer Fallback bestehen und Details werden in last_error angezeigt.
Fehlerbehebung bei gängigen Bubble-Setups
normalized_query entspricht immer der Roheingabe
Bestätigen Sie, dass das Hauptelement GoLocal! vorhanden und bereit ist, die Quellsprache des Projekts korrekt konfiguriert ist und das Feld „Abfrage“ an die vorgesehene Eingabe gebunden ist. Eine unbekannte Phrase verwendet möglicherweise absichtlich den Rohtext als sicheren Ersatz.
Die Wiederholungsgruppe zeigt kurz das vorherige Ergebnis an
Zeigen Sie für eine strikte Filterung einen Ladestatus an oder führen Sie die endgültige Suche nur aus, wenn der is_normalizing-Status des übereinstimmenden Abfrageelements „Nein“ ist. Der Sequenzwächter verhindert, dass eine ältere Anfrage ein neueres Ergebnis ersetzt.
Ein gespeicherter Titel oder eine Beschreibung wurde geändert
Der Speicherworkflow referenziert normalized_query oder übersetzten Anzeigetext. Ändern Sie ihn wieder auf den ursprünglichen Wert für Eingabe, mehrzeilige Eingabe oder Rich-Text-Editor. GoLocal Query dient nur der Matching-Logik.
Zwei Eingänge stören sich gegenseitig
Geben Sie jeder unabhängigen Sucheingabe ein eigenes GoLocal Query-Element. Schalten Sie einen Helfer nicht dynamisch zwischen unabhängigen Eingaben um.
Ein Selektor eines Drittanbieters führt keine umgekehrte Übereinstimmung durch
Die automatische Unterstützung ist auf Bubble SearchBox, Bubble Dropdown, Legacy MultiDropdown und Select2 MultiDropdown beschränkt. Wenn das Drittanbieter-Steuerelement eingegebenen Text für Bubble verfügbar macht, verbinden Sie diesen Text mit einem dedizierten GoLocal Query-Element.
Gespeicherte Benutzerinhalte werden übersetzt, wenn sie später angezeigt werden
Fügen Sie eine wiederverwendbare Klasse wie .gl-user-content zu ihrem Anzeigecontainer hinzu und fügen Sie diesen Selektor in do_not_translate_selectors im Hauptelement GoLocal! ein.
Die Eingabe befindet sich innerhalb einer Wiederholungsgruppe
Platzieren Sie nicht in jeder Zelle ein Abfrageelement und duplizieren Sie keine HTML-IDs. Filtern Sie lieber die sich wiederholende Gruppe, bevor Sie sie rendern. Andernfalls belassen Sie den Abfragehelfer außerhalb der Wiederholungsgruppe und übergeben Sie einen einzelnen ausgewählten/Suchwert an ihn.
Checkliste für die Abnahme
- 1Suchen Sie nach demselben Datensatz in Englisch und Französisch.
- 2Geben Sie schnell ein und bestätigen Sie, dass ein älteres Ergebnis niemals ein neueres ersetzt.
- 3Löschen Sie die Eingabe und bestätigen Sie die wiederholten Gruppenzurücksetzungen.
- 4Wechseln Sie die Sprache, solange die Eingabe nicht leer ist.
- 5Testen Sie zwei unabhängige Sucheingaben auf derselben Seite.
- 6Speichern Sie einen französischen Titel mit Akzenten und bestätigen Sie, dass der genaue Text gespeichert ist.
- 7Geben Sie Folgendes ein und fügen Sie es in Quill ein. Keiner der Pfade sollte neu geschrieben werden.
- 8Testen Sie eine unbekannte Abfrage und bestätigen Sie, dass der Raw-Fallback die Seite nutzbar hält.
- 9Bestätigen Sie, dass jeder Speicherworkflow den ursprünglichen Eingabewert verwendet.
- 10Bestätigen Sie kritische Quellsprachen-Workflows und warten Sie auf is_normalizing = Nein.
Schnelle Entscheidungsregel
Zur Anzeige und Speicherung nutzen Sie die Eingabe. Der kanonische Textabgleich verwendet GoLocal Query.
Wenn Bubble ein Ding, eine Option Set-Option, eine ID oder einen stabilen Code vergleichen kann, verwenden Sie dieses Objekt direkt. Fügen Sie GoLocal Query nur hinzu, wenn ein übersetzter Freiformtextwert mit kanonischem Text in der Quellsprache abgeglichen werden muss.