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
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.
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.
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 NewsOdwiedzają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_queryJest to właściwe, gdy baza danych lub istniejący warunek rzeczywiście przeszukuje kanoniczny tekst w języku angielskim.
Przykładowy zestaw kategorii
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:
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.
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.
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 CategoriesPowiąż jego pole zapytania
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180Bubble automatycznie aktualizuje element, gdy zmienia się dynamiczna wartość wejściowa. Nie jest wymagany przepływ pracy ze zmienionymi danymi wejściowymi.
Używaj normalized_query tylko w logice języka źródłowego
GoLocal Query Categories's normalized_queryUżyj tej wartości w ograniczeniu grupy powtarzalnej, filtrze zaawansowanym, warunku tekstowym lub parametrze API, który oczekuje języka angielskiego.
Zachowaj zapisy i weryfikację podłączone do wejścia
Save Category Name = Input Category Search's valueNigdy 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?
- 1Wejście się zmienia: Bubble przekazuje dokładną aktualną wartość wejściową do pola Zapytanie.
- 2Debounce chwilę czeka: Domyślny czas 180 ms uniemożliwia żądanie dla każdego pojedynczego naciśnięcia klawisza.
- 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.
- 4Bubble odbiera stany: normalized_query zmienia się na „News”, is_normalizing zmienia się na „nie” i uruchamiane jest znormalizowane zdarzenie.
- 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_queryPreferuj 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 noIdentyfikatory, 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.
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 valueWynik: 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łyWprowadź wyszukiwanie klientówKlienci GoLocal QueryFiltr klienta APIFiltr tagów wejściowychTagi GoLocal QueryStan tagunormalized 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
QuerytextPowiąż z jedną widoczną wartością wejścia Bubble.
Enabledyes/noDomyślnie tak. Gdy ta opcja jest wyłączona, przycięty tekst przechodzi bez zmian.
Debounce (ms)numberWartość domyślna 180. Zalecany zakres wyszukiwania to 150–250 ms.
Stany
original_querytextDokładna wartość otrzymana z Bubble przed normalizacją.
normalized_querytextKanoniczna wartość języka źródłowego dla logiki wyszukiwania lub porównania.
is_normalizingyes/noTak, podczas rozwiązywania najnowszego, niepustego zapytania.
normalization_foundyes/noTak, gdy znaleziono mapowanie języka źródłowego.
last_errortextKomunikat 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
- 1Wyszukaj ten sam rekord w języku angielskim i francuskim.
- 2Wpisz szybko i potwierdź, że starszy wynik nigdy nie zastępuje nowszego.
- 3Wyczyść wejście i potwierdź resetowanie grupy powtarzalnej.
- 4Zmień język, gdy pole wejściowe nie jest puste.
- 5Przetestuj dwa niezależne dane wejściowe wyszukiwania na tej samej stronie.
- 6Zapisz francuski tytuł z akcentami i potwierdź, że zapisany został dokładny tekst.
- 7Wpisz i wklej do Quill; żadna ścieżka nie powinna być przepisana.
- 8Przetestuj nieznane zapytanie i potwierdź, że pierwotne źródło zastępcze zapewnia użyteczność strony.
- 9Upewnij się, że przy każdym procesie zapisywania używana jest oryginalna wartość wejściowa.
- 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.