El concepto central
Una aplicación Bubble normalmente tiene una lenguaje canónico en el que se crearon las etiquetas de su base de datos, los valores de visualización Option Set y las condiciones de texto codificadas. GoLocal puede mostrar esos valores en otro idioma, pero la lógica Bubble aún puede esperar el valor canónico.
Idioma original del proyecto
ingles
Categoría almacenada: Noticias
El visitante ve
francés
Etiqueta visible: Actualités
Búsquedas Bubble
Noticias
Valor fuente normalizado
normalized_query se utiliza sólo cuando Bubble necesita explícitamente texto en el idioma de origen.¿Qué elemento GoLocal debo usar?
El complemento contiene dos elementos Bubble no visuales diferentes. Resuelven diferentes problemas. La mayoría de las páginas necesitan el principal. GoLocal! elemento; sólo las páginas con un problema específico de búsqueda de texto necesitan GoLocal Query.
Traductor requerido
GoLocal!
Este es el principal motor de traducción. Carga su proyecto, traduce el contenido de la página, muestra el widget de idioma y publica el idioma actual y los eventos de traducción.
- Por lo general, coloque una instancia en un encabezado reutilizable u otro elemento compartido por la página.
- Utilice sus campos para la clave API, el widget, los ID/selectores excluidos y el comportamiento de origen/destino.
- Utilice sus estados y eventos cuando Bubble deba conocer el idioma seleccionado o el estado de la traducción.
Ayudante lógico opcional
GoLocal Query
Esto no traduce la página y no muestra un widget. Convierte una frase de búsqueda ingresada por un visitante en la frase canónica del idioma de origen de su aplicación para la lógica Bubble.
- Agréguelo solo cuando una entrada normal deba buscar o comparar texto almacenado en el idioma de origen del proyecto.
- Utilice un elemento de consulta por entrada de búsqueda independiente.
- Nunca utilice normalized_query para guardar nombres, títulos, descripciones o mensajes creados por el usuario.
Arquitectura Bubble preferida
Siempre que sea posible, cree condiciones en torno a cosas Bubble, opciones de Option Set, ID únicos o códigos estables (texto para mostrar no traducido). La traducción debería cambiar lo que ve una persona, no la identidad del registro.
Lo mejor: comparar el objeto
Current cell's Article's Category
is Category NewsEl visitante puede ver "Actualités", pero Bubble compara la opción Category Thing o Option Set en sí.
Utilice Consulta solo para coincidencia de texto
Category name contains
GoLocal Query Categories's normalized_queryEsto es apropiado cuando la base de datos o una condición existente realmente busca texto canónico en inglés.
Conjunto de categorías de ejemplo
Búsqueda inversa automática
Tiempo de ejecución gratuito 4.1.23 aplica automáticamente la búsqueda inversa solo a los controles Bubble cuyo propósito es seleccionar o buscar un valor existente:
Tipos de visitantes: Actualidades
Controlar partidos: Noticias
El visitante continúa viendo: Actualidades
Cada control admitido tiene un estado inverso aislado, incluidos varios controles en la misma página. No agregue un elemento GoLocal Query solo para duplicar este comportamiento integrado.
Bubble SearchBox
Úselo cuando el visitante busque y seleccione una cosa Bubble existente. GoLocal ayuda a que la frase traducida coincida con el texto canónico utilizado por SearchBox.
Menú desplegable Bubble
Úselo para una única selección de una lista estática o dinámica existente. La opción seleccionada sigue siendo el valor real de Bubble.
Legado Bubble MultiDropdown
Úselo para seleccionar varias opciones existentes en aplicaciones Bubble más antiguas. Cada control se normaliza de forma independiente.
Select2 MultiDropdown
Úselo para los controles de selección múltiple actuales con capacidad de búsqueda. El texto de búsqueda escrito puede coincidir con las etiquetas de opciones del idioma de origen sin cambiar las entradas normales.
Usando GoLocal Query
Utilice lo no visual GoLocal Query elemento cuando una entrada Bubble ordinaria impulsa intencionalmente una búsqueda de texto, un filtro condicional del idioma de origen o un filtro backend/API.
Agregue un elemento de consulta para esta entrada
Colóquelo una vez en la página o en el elemento reutilizable propietario de la Entrada. No lo coloque en cada celda del grupo repetido.
Element name: GoLocal Query CategoriesVincular su campo de consulta
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180Bubble actualiza automáticamente el elemento cuando cambia el valor de entrada dinámica. No se requiere ningún flujo de trabajo modificado en las entradas.
Utilice normalized_query solo en la lógica del idioma de origen
GoLocal Query Categories's normalized_queryUtilice este valor en una restricción de grupo repetido, un filtro avanzado, un texto condicional o un parámetro API que espere inglés.
Mantenga guardados y validación conectados a la entrada
Save Category Name = Input Category Search's valueNunca reemplace un valor guardado normal, una verificación de correo electrónico, un cálculo numérico o una verificación de campo obligatorio con normalized_query.
¿Qué sucede mientras el visitante escribe?
- 1La entrada cambia: Bubble pasa el valor de entrada actual exacto al campo Consulta.
- 2El rebote espera brevemente: Los 180 ms predeterminados evitan una solicitud por cada pulsación de tecla.
- 3La frase más nueva está normalizada.: Por ejemplo, "Actualités" se resuelve en "Noticias". Las solicitudes más antiguas sin finalizar no pueden sobrescribir el resultado más reciente.
- 4Bubble recibe los estados: normalized_query se convierte en "Noticias", is_normalizing se convierte en no y se activa el evento normalizado.
- 5Sólo la lógica prevista lo consume.: El filtro de grupo repetido, condicional o API utiliza normalized_query; los guardados todavía usan la entrada original.
Ejemplos prácticos de Bubble
grupo repetitivo
Buscar categorías de artículos en inglés a partir de una entrada en francés
Los tipos de visitantes Actualidades. La base de datos almacena Noticias. Establezca la restricción de nombre de categoría del grupo repetido en:
GoLocal Query Categories's normalized_queryPrefiere una selección de cosa de categoría/Option Set cuando esté disponible; use la normalización de texto solo cuando el filtro realmente esté basado en texto.
Bubble condicional
Comparar con un valor codificado en el idioma de origen
When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"Si la condición controla un flujo de trabajo crítico, espere hasta que finalice la normalización. Para el filtrado de solo visualización, el respaldo sin formato puede ser suficiente.
Servidor o API
Enviar una consulta en lenguaje canónico a un punto final
API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is noLos ID, UUID, correos electrónicos, tokens, fechas y valores numéricos deben omitir GoLocal Query y enviarse sin cambios.
Tutorial completo para principiantes
Filtrar artículos por un nombre de categoría traducido
Supongamos que la aplicación se creó en inglés. El campo de la base de datos Nombre de categoría contiene Noticias, pero un visitante francés escribe Actualidades en una entrada normal.
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 valueResultado: el visitante busca en francés, Bubble encuentra el valor de la base de datos en inglés y ningún texto ingresado por el usuario se reescribe ni se guarda en otro formato.
Páginas con múltiples entradas
Cree una instancia de GoLocal Query para cada contexto de búsqueda independiente. Cada instancia tiene su propio valor, temporizador antirrebote, protección de secuencia, estados y eventos, por lo que una entrada no puede sobrescribir a otra.
Entrada de búsqueda de artículosArtículos sobre GoLocal QueryArtículos que se repiten en el grupo.Entrada de búsqueda de clientesClientes GoLocal QueryFiltro API del clienteFiltro de etiqueta de entradaEtiquetas GoLocal QueryCondición de la etiquetanormalized incendios de eventos.¿Qué debe permanecer intacto?
Utilice GoLocal Query para
- Texto de formato libre utilizado para buscar campos de bases de datos en lenguaje canónico
- Condiciones de texto que esperan una constante en inglés
- Parámetros de consulta API cuyo backend espera inglés
- Controles de búsqueda de terceros que exponen su consulta escrita a Bubble
No lo utilices para
- Se guardan nombres, títulos, comentarios, descripciones o etiquetas creadas por el usuario.
- Contenido Quill, texto enriquecido, contenteditable o entrada multilínea
- Correos electrónicos, contraseñas, teléfonos, identificaciones, fechas, números, archivos o validación
- Bubble Cosas u objetos Option Set que se pueden comparar directamente
Contenido de usuario guardado que se muestra más tarde
Una entrada protegida aún se puede representar más tarde dentro de un elemento de texto Bubble normal. Marque el contenedor de visualización con una clase reutilizable como .gl-user-content y agréguelo al elemento principal de GoLocal do_not_translate_selectors. Para grupos repetidos, utilice una clase/selector en lugar de duplicar el mismo ID HTML en las filas.
Campos, estados y eventos.
Campos
QuerytextVincular a un valor de entrada Bubble visible.
Enabledyes/noPor defecto si. Cuando está deshabilitado, el texto recortado pasa sin cambios.
Debounce (ms)numberEl valor predeterminado es 180. El rango recomendado para la búsqueda es de 150 a 250 ms.
Estados
original_querytextValor exacto recibido de Bubble antes de la normalización.
normalized_querytextValor canónico del idioma de origen para la lógica de búsqueda o comparación.
is_normalizingyes/noSí, mientras se resuelve la consulta más reciente que no está vacía.
normalization_foundyes/noSí, cuando se encontró una asignación del idioma de origen.
last_errortextMensaje de falla técnica; vacío durante el funcionamiento normal.
normalizado
Se activa después de que finaliza la última consulta. Úselo cuando un flujo de trabajo deba esperar o copiar el resultado a un estado personalizado.
normalization_failed
Incendios por fallo técnico. La consulta sin formato permanece como un recurso alternativo utilizable y los detalles aparecen en last_error.
Solución de problemas de configuraciones comunes de Bubble
normalized_query siempre es igual a la entrada sin formato
Confirme que el elemento principal GoLocal! esté presente y listo, que el idioma fuente del proyecto esté configurado correctamente y que el campo Consulta esté vinculado a la entrada deseada. Una frase desconocida puede utilizar intencionadamente el texto sin formato como recurso seguro.
El grupo repetido muestra brevemente el resultado anterior.
Para un filtrado estricto, muestre un estado de carga o ejecute la búsqueda final solo cuando el estado is_normalizing del elemento de consulta coincidente sea no. La protección de secuencia evita que una solicitud anterior reemplace un resultado más nuevo.
Un título guardado o una descripción cambiada
El flujo de trabajo para guardar hace referencia a normalized_query o al texto para mostrar traducido. Vuelva a cambiarlo al valor original de Entrada, Entrada multilínea o editor de texto enriquecido. GoLocal Query es solo para lógica coincidente.
Dos entradas interfieren entre sí
Asigne a cada búsqueda independiente su propio elemento GoLocal Query. No cambie dinámicamente un ayudante entre entradas no relacionadas.
Un selector de terceros no realiza coincidencias inversas
La compatibilidad automática está limitada a Bubble SearchBox, Bubble Dropdown, MultiDropdown heredado y Select2 MultiDropdown. Si el control de terceros expone texto escrito en Bubble, conecte ese texto a un elemento GoLocal Query dedicado.
El contenido del usuario guardado se traduce cuando se muestra más tarde
Agregue una clase reutilizable como .gl-user-content a su contenedor de visualización e incluya ese selector en do_not_translate_selectors en el elemento principal GoLocal!.
La entrada está dentro de un grupo repetido.
No coloque un elemento de consulta en cada celda y no duplique los ID de HTML. Prefiere filtrar el grupo repetido antes de renderizarlo; de lo contrario, mantenga el asistente de consulta fuera del grupo repetido y pásele un único valor seleccionado/de búsqueda.
Lista de verificación de aceptación
- 1Busque el mismo registro en inglés y francés.
- 2Escriba rápidamente y confirme que un resultado anterior nunca reemplaza a uno más nuevo.
- 3Borre la entrada y confirme los reinicios del grupo repetido.
- 4Cambie de idioma mientras la entrada no esté vacía.
- 5Pruebe dos entradas de búsqueda independientes en la misma página.
- 6Guarde un título francés con acentos y confirme que el texto exacto esté almacenado.
- 7Escriba y pegue en Quill; ninguna ruta debe reescribirse.
- 8Pruebe una consulta desconocida y confirme que el respaldo sin procesar mantiene la página utilizable.
- 9Confirme que cada flujo de trabajo guardado utilice el valor de entrada original.
- 10Confirme que los flujos de trabajo críticos en el idioma de origen esperen a que is_normalizing = no.
Regla de decisión rápida
Mostrar y guardar utiliza la Entrada. La coincidencia de texto canónico utiliza GoLocal Query.
Si Bubble puede comparar una cosa, una opción, un ID o un código estable de Option Set, utilice ese objeto directamente. Agregue GoLocal Query solo cuando un valor de texto traducido de formato libre deba compararse con el texto del idioma de origen canónico.