GoLocal!
Otwórz pulpit nawigacyjny
Przewodnik programisty BubbleBezpłatny czas działania 4.1.23

Bezpieczne wielojęzyczne wyszukiwanie za pomocą GoLocal Query

Przyjazny dla początkujących przewodnik po głównym elemencie GoLocal, opcjonalnym elemencie GoLocal Query, automatycznych kontrolkach wyszukiwania Bubble i najbezpieczniejszym sposobie oddzielenia przetłumaczonych interfejsów od logiki bazy danych.

Podstawowa koncepcja

Aplikacja Bubble zwykle ma taką funkcję język kanoniczny w którym utworzono etykiety bazy danych, wartości wyświetlane Option Set i zakodowane na stałe warunki tekstowe. GoLocal może wyświetlać te wartości w innym języku, ale logika Bubble może nadal oczekiwać wartości kanonicznej.

Źródło Project

Angielski

Przechowywane kategoria: Wiadomości

Gość widzi

Francuski

Widoczna etykieta: Actualités

Wyszukiwania Bubble

Wiadomości

Znormalizowana wartość źródłowa

Zasada bezpieczeństwa: widoczne dane wejściowe pozostają wartością dostępną dla użytkownika i zapisaną. Oddzielny normalized_query jest używany tylko wtedy, gdy Bubble wyraźnie potrzebuje tekstu w języku źródłowym.

Którego elementu GoLocal powinienem użyć?

Wtyczka zawiera dwa różne niewizualne elementy Bubble. Rozwiązują różne problemy. Większość stron potrzebuje pliku main GoLocal! element; potrzebne są tylko strony z konkretnym problemem wyszukiwania tekstu GoLocal Query.

Dostępność wtyczki: oddzielne GoLocal Query element jest zawarty we wtyczce Free/API-key Bubble i współpracuje z aktywnym projektem GoLocal SaaS.

Wymagany tłumacz

GoLocal!

To jest główny silnik tłumaczący. Ładuje Twój projekt, tłumaczy zawartość strony, wyświetla widżet językowy i publikuje aktualne wydarzenia dotyczące języka i tłumaczeń.

  • Zwykle umieszczaj jedną instancję w nagłówku wielokrotnego użytku lub innym elemencie udostępnianym przez stronę.
  • Użyj jego pól dla klucza API, widżetu, wykluczonych identyfikatorów/selektorów i zachowania źródła/celu.
  • Użyj jego stanów i zdarzeń, gdy Bubble musi znać wybrany język lub status tłumaczenia.

Opcjonalny pomocnik logiki

GoLocal Query

Nie tłumaczy to strony i nie wyświetla widżetu. Konwertuje jedną wyszukiwaną frazę wprowadzoną przez odwiedzającego na kanoniczną frazę w języku źródłowym aplikacji na potrzeby logiki Bubble.

  • Dodaj go tylko wtedy, gdy normalne dane wejściowe muszą przeszukać lub porównać tekst zapisany w języku źródłowym projektu.
  • Użyj jednego elementu zapytania na każde niezależne wejście wyszukiwania.
  • Nigdy nie używaj normalized_query do zapisywania stworzonych przez użytkowników nazw, tytułów, opisów lub wiadomości.
Element lub zadanie BubbleCzego używać
Tekst, przycisk, grupa, interfejs użytkownika wielokrotnego użytkuTylko GoLocal!
Wejście zapisujące dane użytkownikaOryginalna wartość wejściowa
Zwykłe wprowadzanie filtrujące pole tekstowe w języku angielskimJeden GoLocal Query
Bubble SearchBox lub menu rozwijaneAutomatyczny
Starsza wersja lub Select2 MultiDropdownAutomatyczny
Wejście wieloliniowe, Quill, contenteditableOryginalna wartość edytora
Powtarzające się ograniczenie grupyNajpierw rzecz/Option Set/ID
E-mail, telefon, hasło, numer, data, identyfikator, plikOryginalna wartość
Prosta decyzja: jeśli wartość jest wyświetlana, użyj głównego tłumacza. Jeśli wartość jest zapisywana, użyj oryginalnej wartości Bubble. Jeśli przetłumaczona fraza musi zostać dopasowana do tekstu w języku źródłowym, użyj obsługiwanego automatycznego sterowania lub jednego dedykowanego elementu GoLocal Query.

Preferowana architektura Bubble

Jeśli to możliwe, twórz warunki wokół elementów Bubble, opcji Option Set, unikalnych identyfikatorów lub stabilnych kodów — a nie przetłumaczonego tekstu wyświetlanego. Tłumaczenie powinno zmieniać to, co widzi dana osoba, a nie tożsamość akt.

Najlepiej: porównaj obiekt

Current cell's Article's Category
is Category News

Odwiedzający może zobaczyć „Actualités”, ale Bubble porównuje samą opcję Category Thing lub Option Set.

Używaj zapytania tylko do dopasowywania tekstu

Category name contains
GoLocal Query Categories's normalized_query

Jest to właściwe, gdy baza danych lub istniejący warunek rzeczywiście przeszukuje kanoniczny tekst w języku angielskim.

Przykładowy zestaw kategorii

Kanoniczny angielskiPokaz francuski
WiadomościAktualności
OpiniaOpinia
SamouczekTutoriel
PrzewodnikPrzewodnik
RecenzjaAvisa
HistoriaHistoria
InneAutre

Automatyczne wyszukiwanie wsteczne

Bezpłatny czas działania 4.1.23 automatycznie stosuje wyszukiwanie wsteczne tylko do kontrolek Bubble, których celem jest wybranie lub przeszukanie istniejącej wartości:

Bubble SearchBox
Lista rozwijana Bubble
Starsza wersja Bubble MultiDropdown
Aktualny Select2 MultiDropdown

Typy gości: Aktualności

Mecze kontrolne: Wiadomości

Gość nadal widzi: Aktualności

Każdy obsługiwany element sterujący ma izolowany stan odwrotny, w tym wiele elementów sterujących na tej samej stronie. Nie dodawaj elementu GoLocal Query tylko po to, aby zduplikować to wbudowane zachowanie.

Bubble SearchBox

Użyj go, gdy odwiedzający wyszukuje i wybiera istniejącą rzecz Bubble. GoLocal pomaga przetłumaczonej frazie dopasować tekst kanoniczny używany przez SearchBox.

Lista rozwijana Bubble

Użyj go do pojedynczego wyboru z istniejącej listy statycznej lub dynamicznej. Wybrana opcja pozostaje rzeczywistą wartością Bubble.

Starsza wersja Bubble MultiDropdown

Użyj go do wybrania kilku istniejących opcji w starszych aplikacjach Bubble. Każda kontrola jest normalizowana niezależnie.

Select2 MultiDropdown

Użyj go do bieżących elementów sterujących wielokrotnego wyboru z możliwością przeszukiwania. Wpisany tekst wyszukiwania może pasować do etykiet opcji języka źródłowego bez zmiany zwykłych danych wejściowych.

Zwykłe wejście Bubble celowo nie jest automatyczne. Wtyczka nie może bezpiecznie odgadnąć, czy dane wejściowe to pole wyszukiwania, imię i nazwisko osoby, tytuł bazy danych, wartość warunkowa czy tekst, który zostanie zapisany. Dodaj GoLocal Query tylko dla konkretnego wejścia, którego dalsza logika wymaga tekstu kanonicznego.

Używanie GoLocal Query

Użyj tego, co niewizualne GoLocal Query element, gdy zwykłe dane wejściowe Bubble celowo sterują wyszukiwaniem tekstowym, filtrem warunkowym w języku źródłowym lub filtrem zaplecza/API.

1

Dodaj jeden element zapytania dla tego wejścia

Umieść go raz na stronie lub w elemencie wielokrotnego użytku, który jest właścicielem danych wejściowych. Nie umieszczaj go w każdej komórce grupy powtarzalnej.

Element name: GoLocal Query Categories
2

Powiąż jego pole zapytania

Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180

Bubble automatycznie aktualizuje element, gdy zmienia się dynamiczna wartość wejściowa. Nie jest wymagany przepływ pracy ze zmienionymi danymi wejściowymi.

3

Używaj normalized_query tylko w logice języka źródłowego

GoLocal Query Categories's normalized_query

Użyj tej wartości w ograniczeniu grupy powtarzalnej, filtrze zaawansowanym, warunku tekstowym lub parametrze API, który oczekuje języka angielskiego.

4

Zachowaj zapisy i weryfikację podłączone do wejścia

Save Category Name = Input Category Search's value

Nigdy nie zastępuj normalnej wartości zapisu, sprawdzania poczty e-mail, obliczania liczb lub sprawdzania wymaganych pól wartością normalized_query.

Co się dzieje, gdy użytkownik pisze?

  1. 1Wejście się zmienia: Bubble przekazuje dokładną aktualną wartość wejściową do pola Zapytanie.
  2. 2Debounce chwilę czeka: Domyślny czas 180 ms uniemożliwia żądanie dla każdego pojedynczego naciśnięcia klawisza.
  3. 3Najnowsze wyrażenie jest znormalizowane: Na przykład „Actualités” zmienia się na „Wiadomości”. Starsze, niedokończone żądania nie mogą zastąpić najnowszego wyniku.
  4. 4Bubble odbiera stany: normalized_query zmienia się na „News”, is_normalizing zmienia się na „nie” i uruchamiane jest znormalizowane zdarzenie.
  5. 5Zużywa go tylko zamierzona logika: Filtr grupy powtarzalnej, warunkowy lub API używa normalized_query; zapisuje nadal używa oryginalnego wejścia.

Praktyczne przykłady Bubble

Grupa powtarzalna

Przeszukuj kategorie artykułów w języku angielskim na podstawie danych francuskich

Typy gości Aktualności. Baza danych przechowuje Wiadomości. Ustaw ograniczenie nazwy kategorii grupy powtarzanej na:

GoLocal Query Categories's normalized_query

Preferuj wybór kategorii Rzecz/Option Set, jeśli jest dostępny; używaj normalizacji tekstu tylko wtedy, gdy filtr naprawdę jest oparty na tekście.

Bubble warunkowo

Porównaj z zakodowaną na stałe wartością języka źródłowego

When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"

Jeśli warunek kontroluje krytyczny przepływ pracy, poczekaj na zakończenie normalizacji. W przypadku filtrowania tylko do wyświetlania, surowa rezerwa może być wystarczająca.

Backend lub API

Wyślij zapytanie w języku kanonicznym do punktu końcowego

API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is no

Identyfikatory, UUID, e-maile, tokeny, daty i wartości liczbowe powinny omijać GoLocal Query i być wysyłane bez zmian.

Kompletny przewodnik dla początkujących

Filtruj artykuły według przetłumaczonej nazwy kategorii

Załóżmy, że aplikacja została zbudowana w języku angielskim. Pole bazy danych Nazwa kategorii zawiera Wiadomości, ale pisze gość z Francji Aktualności do normalnego wejścia.

1. Nazwij wyraźnie wejście Bubble
Input Category Search
2. Dodaj i nazwij jednego niewizualnego pomocnika
GoLocal Query Categories
3. Powiąż pole pomocnicze
GoLocal Query Categories → Query
= Input Category Search's value
4. Ustaw ograniczenie tekstu grupy powtarzanej
Search for Articles
Category name = GoLocal Query Categories's normalized_query
5. Zachowaj niezmienione przepływy pracy tworzenia/edycji
Create a new Article's title
= Input Article Title's value

Wynik: odwiedzający wyszukuje w języku francuskim, Bubble znajduje angielską wartość w bazie danych, a żaden tekst wprowadzony przez użytkownika nie jest przepisywany ani zapisywany w innej formie.

Strony z wieloma danymi wejściowymi

Utwórz jedną instancję GoLocal Query dla każdego niezależnego kontekstu wyszukiwania. Każda instancja ma swoją własną wartość, licznik czasu odbicia, strażnika sekwencji, stany i zdarzenia, więc jedno wejście nie może zastąpić innego.

Wprowadź wyszukiwanie artykułówArtykuły GoLocal QueryGrupa powtarzająca artykuły
Wprowadź wyszukiwanie klientówKlienci GoLocal QueryFiltr klienta API
Filtr tagów wejściowychTagi GoLocal QueryStan tagu
Nie używaj ponownie jednego elementu zapytania dla niepowiązanych danych wejściowych. Jeśli wartość musi przekraczać granicę elementu wielokrotnego użytku, skopiuj normalized_query tego konkretnego elementu do dedykowanego stanu niestandardowego Bubble, gdy jego normalized pożary zdarzeń.

Co musi pozostać nietknięte

Użyj GoLocal Query dla

  • Tekst dowolny używany do przeszukiwania pól bazy danych w języku kanonicznym
  • Warunki tekstowe, które oczekują stałej angielskiej
  • Parametry zapytania API, którego backend oczekuje języka angielskiego
  • Kontrole wyszukiwania innych firm, które udostępniają wpisane zapytanie Bubble

Nie używaj go do

  • Zapisywane są nazwy, tytuły, komentarze, opisy lub znaczniki utworzone przez użytkownika
  • Quill, tekst sformatowany, contenteditable lub treść wejściowa wielowierszowa
  • E-maile, hasła, telefony, identyfikatory, daty, numery, pliki lub weryfikacja
  • Bubble Rzeczy lub obiekty Option Set, które można bezpośrednio porównać

Zapisana treść użytkownika wyświetlona później

Chronione dane wejściowe można nadal renderować później w normalnym elemencie tekstowym Bubble. Oznacz kontener wyświetlacza klasą wielokrotnego użytku, taką jak .gl-user-content i dodaj go do głównego elementu GoLocal do_not_translate_selectors. W przypadku powtarzających się grup użyj klasy/selektora zamiast powielać ten sam identyfikator HTML w wierszach.

Pola, stany i zdarzenia

Pola

Querytext

Powiąż z jedną widoczną wartością wejścia Bubble.

Enabledyes/no

Domyślnie tak. Gdy ta opcja jest wyłączona, przycięty tekst przechodzi bez zmian.

Debounce (ms)number

Wartość domyślna 180. Zalecany zakres wyszukiwania to 150–250 ms.

Stany

original_querytext

Dokładna wartość otrzymana z Bubble przed normalizacją.

normalized_querytext

Kanoniczna wartość języka źródłowego dla logiki wyszukiwania lub porównania.

is_normalizingyes/no

Tak, podczas rozwiązywania najnowszego, niepustego zapytania.

normalization_foundyes/no

Tak, gdy znaleziono mapowanie języka źródłowego.

last_errortext

Komunikat o awarii technicznej; pusty podczas normalnej pracy.

znormalizowany

Uruchamia się po zakończeniu ostatniego zapytania. Użyj go, gdy przepływ pracy musi poczekać lub skopiuj wynik do stanu niestandardowego.

normalization_failed

Pali z powodu awarii technicznej. Surowe zapytanie pozostaje użytecznym rozwiązaniem awaryjnym, a szczegóły pojawiają się w last_error.

Rozwiązywanie problemów z typowymi konfiguracjami Bubble

normalized_query zawsze równa się surowemu wejściu

Upewnij się, że główny element GoLocal! jest obecny i gotowy, język źródłowy projektu jest poprawnie skonfigurowany, a pole Zapytanie jest powiązane z zamierzonymi danymi wejściowymi. Nieznana fraza może celowo używać nieprzetworzonego tekstu jako bezpiecznego rozwiązania zastępczego.

Grupa powtarzająca się krótko pokazuje poprzedni wynik

Aby uzyskać ścisłe filtrowanie, pokaż stan ładowania lub uruchom końcowe wyszukiwanie tylko wtedy, gdy stan is_normalizing pasującego elementu zapytania ma wartość „nie”. Strażnik sekwencji zapobiega zastąpieniu przez starsze żądanie nowszego wyniku.

Zapisany tytuł lub opis uległ zmianie

Przepływ pracy zapisywania odwołuje się do normalized_query lub przetłumaczonego tekstu wyświetlanego. Zmień go z powrotem na oryginalną wartość wprowadzania, wprowadzania wielowierszowego lub edytora tekstu sformatowanego. GoLocal Query służy wyłącznie do dopasowywania logiki.

Dwa wejścia zakłócają się wzajemnie

Daj każdemu niezależnemu wyszukiwaniu własny element GoLocal Query. Nie przełączaj dynamicznie jednego pomocnika pomiędzy niepowiązanymi wejściami.

Selektor innej firmy nie powoduje odwrotnego dopasowania

Automatyczne wsparcie jest ograniczone do Bubble SearchBox, Bubble Dropdown, starszego MultiDropdown i Select2 MultiDropdown. Jeśli formant innej firmy udostępnia wpisany tekst Bubble, połącz ten tekst z dedykowanym elementem GoLocal Query.

Zapisana treść użytkownika zostanie przetłumaczona podczas późniejszego wyświetlenia

Dodaj klasę wielokrotnego użytku, taką jak .gl-user-content, do jej kontenera wyświetlania i umieść ten selektor w do_not_translate_selectors w głównym elemencie GoLocal!.

Dane wejściowe znajdują się w powtarzającej się grupie

Nie umieszczaj jednego elementu Query w każdej komórce i nie duplikuj identyfikatorów HTML. Preferuj filtrowanie powtarzającej się grupy przed jej renderowaniem; w przeciwnym razie trzymaj pomocnika zapytania poza powtarzającą się grupą i przekaż do niego pojedynczą wybraną/wyszukiwaną wartość.

Lista kontrolna akceptacji

  1. 1Wyszukaj ten sam rekord w języku angielskim i francuskim.
  2. 2Wpisz szybko i potwierdź, że starszy wynik nigdy nie zastępuje nowszego.
  3. 3Wyczyść wejście i potwierdź resetowanie grupy powtarzalnej.
  4. 4Zmień język, gdy pole wejściowe nie jest puste.
  5. 5Przetestuj dwa niezależne dane wejściowe wyszukiwania na tej samej stronie.
  6. 6Zapisz francuski tytuł z akcentami i potwierdź, że zapisany został dokładny tekst.
  7. 7Wpisz i wklej do Quill; żadna ścieżka nie powinna być przepisana.
  8. 8Przetestuj nieznane zapytanie i potwierdź, że pierwotne źródło zastępcze zapewnia użyteczność strony.
  9. 9Upewnij się, że przy każdym procesie zapisywania używana jest oryginalna wartość wejściowa.
  10. 10Potwierdź krytyczne przepływy pracy w języku źródłowym, poczekaj na is_normalizing = nie.

Zasada szybkiej decyzji

Wyświetlanie i zapisywanie odbywa się za pomocą wejścia. Dopasowanie tekstu kanonicznego wykorzystuje GoLocal Query.

Jeśli Bubble może porównać Rzecz, opcję Option Set, identyfikator lub stabilny kod, użyj tego obiektu bezpośrednio. Dodaj GoLocal Query tylko wtedy, gdy wartość przetłumaczonego tekstu w dowolnej formie musi zostać dopasowana do kanonicznego tekstu w języku źródłowym.