핵심 개념
Bubble 앱에는 일반적으로 하나가 있습니다. 표준 언어 데이터베이스 레이블, Option Set 표시 값 및 하드 코딩된 텍스트 조건이 생성되었습니다. GoLocal은 해당 값을 다른 언어로 표시할 수 있지만 Bubble 논리에서는 여전히 표준 값을 기대할 수 있습니다.
Pro추출 소스
영어
저장 카테고리: 뉴스
방문자가 본다
프랑스어
표시되는 라벨: Actualités
Bubble 검색
뉴스
정규화된 소스 값
normalized_query Bubble가 명시적으로 소스 언어 텍스트를 필요로 하는 경우에만 사용됩니다.어떤 GoLocal 요소를 사용해야 합니까?
플러그인에는 두 가지 비시각적 Bubble 요소가 포함되어 있습니다. 그들은 다양한 문제를 해결합니다. 대부분의 페이지에는 기본이 필요합니다. GoLocal! 요소; 특정 텍스트 검색 문제가 있는 페이지만 필요합니다. GoLocal Query.
필수 번역가
GoLocal!
이것이 주요 번역 엔진입니다. 프로젝트를 로드하고, 페이지 콘텐츠를 번역하고, 언어 위젯을 표시하고, 현재 언어 및 번역 이벤트를 게시합니다.
- 일반적으로 재사용 가능한 헤더나 페이지에서 공유하는 다른 요소에 하나의 인스턴스를 배치합니다.
- API 키, 위젯, 제외된 ID/선택기 및 소스/대상 동작에 해당 필드를 사용하세요.
- Bubble가 선택한 언어 또는 번역 상태를 알아야 하는 경우 해당 상태 및 이벤트를 사용합니다.
선택적 논리 도우미
GoLocal Query
이는 페이지를 번역하지 않으며 위젯을 표시하지 않습니다. 방문자가 입력한 검색 문구 하나를 Bubble 논리에 대한 앱의 표준 소스 언어 문구로 변환합니다.
- 일반 입력이 프로젝트의 소스 언어에 저장된 텍스트를 검색하거나 비교해야 하는 경우에만 추가하세요.
- 독립적인 검색 입력당 하나의 쿼리 요소를 사용합니다.
- 사용자가 만든 이름, 제목, 설명 또는 메시지를 저장하는 데 normalized_query를 사용하지 마십시오.
선호되는 Bubble 아키텍처
가능할 때마다 번역된 표시 텍스트가 아닌 Bubble 사물, Option Set 옵션, 고유 ID 또는 안정적인 코드에 대한 조건을 구축하세요. 번역은 기록의 정체성이 아니라 사람이 보는 것을 바꿔야 합니다.
최고: 객체를 비교하세요
Current cell's Article's Category
is Category News방문자는 "Actualités"를 볼 수 있지만 Bubble는 Category Thing 또는 Option Set 옵션 자체를 비교합니다.
텍스트 일치에만 쿼리 사용
Category name contains
GoLocal Query Categories's normalized_query이는 데이터베이스나 기존 조건이 정식 영어 텍스트를 실제로 검색하는 경우에 적합합니다.
예시 카테고리 세트
자동 역방향 조회
무료 런타임 4.1.23 기존 값을 선택하거나 검색하는 목적을 가진 Bubble 컨트롤에만 역방향 조회를 자동으로 적용합니다.
방문자 유형: 실제 내용
대조 경기: 뉴스
방문자는 계속해서 다음을 봅니다. 실제 내용
지원되는 각 컨트롤에는 동일한 페이지의 여러 컨트롤을 포함하여 격리된 역방향 상태가 있습니다. 단지 이 기본 제공 동작을 복제하기 위해 GoLocal Query 요소를 추가하지 마세요.
Bubble SearchBox
방문자가 기존 Bubble 사물을 검색하고 선택할 때 사용합니다. GoLocal은 번역된 문구가 SearchBox에서 사용되는 표준 텍스트와 일치하도록 도와줍니다.
Bubble 드롭다운
기존 정적 또는 동적 목록에서 단일 선택에 사용합니다. 선택한 옵션은 실제 Bubble 값으로 유지됩니다.
레거시 Bubble MultiDropdown
이전 Bubble 앱에서 여러 기존 옵션을 선택하는 데 사용합니다. 각 컨트롤은 독립적으로 정규화됩니다.
Select2 MultiDropdown
현재 검색 가능한 다중 선택 컨트롤에 사용합니다. 입력된 검색 텍스트는 일반 입력을 변경하지 않고도 소스 언어 옵션 레이블과 일치할 수 있습니다.
GoLocal Query 사용
비시각적 요소를 활용하라 GoLocal Query 일반 Bubble 입력이 의도적으로 텍스트 검색, 소스 언어 조건부 또는 백엔드/API 필터를 구동할 때 요소입니다.
이 입력에 대해 하나의 쿼리 요소를 추가하세요.
페이지나 입력을 소유한 재사용 가능한 요소에 한 번 배치하세요. 모든 반복 그룹 셀에 배치하지 마십시오.
Element name: GoLocal Query Categories쿼리 필드 바인딩
Query = Input Category Search's value
Enabled = yes
Debounce (ms) = 180Bubble는 동적 입력 값이 변경되면 자동으로 요소를 업데이트합니다. 입력 변경 작업 흐름이 필요하지 않습니다.
소스 언어 논리에서만 normalized_query를 사용하십시오.
GoLocal Query Categories's normalized_query반복 그룹 제약 조건, 고급 필터, 텍스트 조건부 또는 영어가 필요한 API 매개 변수에 이 값을 사용하세요.
입력에 연결된 저장 및 유효성 검사를 유지하세요.
Save Category Name = Input Category Search's value일반 저장 값, 이메일 확인, 숫자 계산 또는 필수 필드 확인을 normalized_query로 대체하지 마십시오.
방문자가 입력하는 동안 무슨 일이 발생합니까?
- 1입력 변경: Bubble는 정확한 현재 입력 값을 쿼리 필드에 전달합니다.
- 2디바운스는 잠시 기다립니다.: 기본값 180ms는 모든 단일 키 입력에 대한 요청을 방지합니다.
- 3최신 문구가 정규화되었습니다.: 예를 들어 "Actualités"는 "News"로 확인됩니다. 완료되지 않은 이전 요청은 최신 결과를 덮어쓸 수 없습니다.
- 4Bubble는 상태를 수신합니다.: normalized_query는 "News"가 되고 is_normalizing는 no가 되며 정규화된 이벤트가 시작됩니다.
- 5의도된 로직만이 이를 소비합니다.: 반복 그룹, 조건부 또는 API 필터는 normalized_query를 사용합니다. 저장은 여전히 원래 입력을 사용합니다.
실용적인 Bubble 예
반복 그룹
프랑스어 입력에서 영어 기사 카테고리 검색
방문자 유형 실제 내용. 데이터베이스 저장소 뉴스. 반복 그룹의 카테고리 이름 제약 조건을 다음과 같이 설정합니다.
GoLocal Query Categories's normalized_query가능한 경우 Category Thing/Option Set 선택을 선호합니다. 필터가 실제로 텍스트 기반인 경우에만 텍스트 정규화를 사용하세요.
Bubble 조건부
하드 코딩된 소스 언어 값과 비교
When GoLocal Query Status's is_normalizing is no
and GoLocal Query Status's normalized_query is "Archived"조건이 중요한 워크플로우를 제어하는 경우 정규화가 완료될 때까지 기다리십시오. 표시 전용 필터링의 경우 원시 대체만으로 충분할 수 있습니다.
백엔드 또는 API
엔드포인트에 표준 언어 쿼리 보내기
API parameter q = GoLocal Query Products's normalized_query
Run only when is_normalizing is noID, UUID, 이메일, 토큰, 날짜 및 숫자 값은 GoLocal Query를 우회하고 변경되지 않은 상태로 전송되어야 합니다.
완전한 초보자 연습
번역된 카테고리 이름으로 기사 필터링
앱이 영어로 제작되었다고 가정합니다. 데이터베이스 필드 카테고리 이름 포함 뉴스, 그런데 프랑스 방문자가 입력합니다. 실제 내용 일반 입력으로.
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 value결과: 방문자는 프랑스어로 검색하고 Bubble는 영어 데이터베이스 값을 찾으며 사용자가 입력한 텍스트는 다시 작성되거나 다른 형식으로 저장되지 않습니다.
여러 입력이 있는 페이지
각각의 독립적인 검색 컨텍스트에 대해 하나의 GoLocal Query 인스턴스를 만듭니다. 각 인스턴스에는 고유한 값, 디바운스 타이머, 시퀀스 가드, 상태 및 이벤트가 있으므로 한 입력이 다른 입력을 덮어쓸 수 없습니다.
입력기사 검색GoLocal Query 기사기사 반복 그룹고객 검색 입력GoLocal Query 고객고객 API 필터입력 태그 필터GoLocal Query 태그태그 조건normalized 이벤트가 발생합니다.손대지 말아야 할 것
다음에는 GoLocal Query를 사용하세요.
- 표준 언어 데이터베이스 필드를 검색하는 데 사용되는 자유 형식 텍스트
- 영어 상수가 필요한 텍스트 조건
- 백엔드에 영어가 필요한 API 쿼리 매개변수
- 입력된 쿼리를 Bubble에 노출하는 타사 검색 컨트롤
다음 용도로 사용하지 마세요.
- 이름, 제목, 설명, 설명 또는 사용자가 만든 태그가 저장됩니다.
- Quill, 서식 있는 텍스트, contenteditable 또는 여러 줄 입력 콘텐츠
- 이메일, 비밀번호, 전화, ID, 날짜, 숫자, 파일 또는 유효성 검사
- Bubble 직접 비교할 수 있는 사물 또는 Option Set 객체
저장된 사용자 콘텐츠가 나중에 표시됨
보호된 입력은 나중에 일반 Bubble 텍스트 요소 내에서 렌더링될 수 있습니다. 다음과 같은 재사용 가능한 클래스로 디스플레이 컨테이너를 표시합니다. .gl-user-content 기본 GoLocal 요소에 추가합니다. do_not_translate_selectors. 반복 그룹의 경우 행 전체에 동일한 HTML ID를 복제하는 대신 클래스/선택기를 사용하세요.
필드, 상태 및 이벤트
필드
Querytext하나의 표시되는 Bubble 입력 값에 바인딩합니다.
Enabledyes/no기본값은 그렇습니다. 비활성화하면 잘린 텍스트가 변경되지 않고 통과됩니다.
Debounce (ms)number기본값은 180입니다. 권장 검색 범위는 150~250ms입니다.
상태
original_querytext정규화 전 Bubble로부터 받은 정확한 값입니다.
normalized_querytext검색 또는 비교 논리에 대한 표준 소스 언어 값입니다.
is_normalizingyes/no예, 비어 있지 않은 최신 쿼리가 해결되는 동안입니다.
normalization_foundyes/no예, 소스 언어 매핑이 발견된 경우입니다.
last_errortext기술적인 실패 메시지; 정상 작동 중에는 비어 있습니다.
표준화된
최신 쿼리가 완료된 후 실행됩니다. 워크플로가 결과를 사용자 정의 상태로 기다리거나 복사해야 하는 경우 이를 사용합니다.
normalization_failed
기술적인 실패로 인해 발생합니다. 원시 쿼리는 사용 가능한 대체 항목으로 유지되며 세부정보는 last_error에 표시됩니다.
일반적인 Bubble 설정 문제 해결
normalized_query는 항상 원시 입력과 같습니다.
기본 GoLocal! 요소가 존재하고 준비되었는지, 프로젝트 소스 언어가 올바르게 구성되었는지, 쿼리 필드가 의도한 입력에 바인딩되었는지 확인하세요. 알 수 없는 문구는 의도적으로 원시 텍스트를 안전한 대체 수단으로 사용할 수 있습니다.
반복 그룹에는 이전 결과가 간략하게 표시됩니다.
엄격한 필터링의 경우 로딩 상태를 표시하거나 일치하는 Query 요소의 is_normalizing 상태가 no인 경우에만 최종 검색을 실행합니다. 시퀀스 가드는 이전 요청이 새로운 결과를 대체하는 것을 방지합니다.
저장된 제목 또는 설명이 변경되었습니다.
저장 작업 흐름은 normalized_query 또는 번역된 표시 텍스트를 참조합니다. 원래 입력, 여러 줄 입력 또는 서식 있는 텍스트 편집기 값으로 다시 변경합니다. GoLocal Query는 로직 매칭에만 사용됩니다.
두 입력이 서로 간섭합니다.
각각의 독립적인 검색을 제공하십시오. 자체 GoLocal Query 요소를 입력하십시오. 관련되지 않은 입력 간에 하나의 도우미를 동적으로 전환하지 마세요.
타사 선택기는 역일치하지 않습니다.
자동 지원은 Bubble SearchBox, Bubble Dropdown, 레거시 MultiDropdown 및 Select2 MultiDropdown로 제한됩니다. 타사 컨트롤이 입력된 텍스트를 Bubble에 노출하는 경우 해당 텍스트를 전용 GoLocal Query 요소에 연결하세요.
저장된 사용자 콘텐츠는 나중에 표시될 때 번역됩니다.
.gl-user-content와 같은 재사용 가능한 클래스를 디스플레이 컨테이너에 추가하고 기본 GoLocal! 요소의 do_not_translate_selectors에 해당 선택기를 포함합니다.
입력이 반복 그룹 내에 있습니다.
모든 셀에 하나의 쿼리 요소를 배치하지 말고 HTML ID를 중복하지 마십시오. 렌더링하기 전에 반복 그룹을 필터링하는 것이 좋습니다. 그렇지 않으면 반복 그룹 외부에 쿼리 도우미를 유지하고 단일 선택/검색 값을 전달합니다.
수락 체크리스트
- 1영어와 프랑스어로 동일한 레코드를 검색합니다.
- 2빠르게 입력하고 이전 결과가 새 결과를 대체하지 않는지 확인하세요.
- 3입력을 지우고 반복 그룹 재설정을 확인합니다.
- 4입력이 비어 있지 않은 동안 언어를 전환합니다.
- 5동일한 페이지에서 두 개의 독립적인 검색 입력을 테스트합니다.
- 6악센트가 있는 프랑스어 제목을 저장하고 정확한 텍스트가 저장되었는지 확인하세요.
- 7Quill에 입력하고 붙여넣으세요. 두 경로 모두 다시 작성해서는 안 됩니다.
- 8알 수 없는 쿼리를 테스트하고 원시 폴백이 페이지를 계속 사용할 수 있는지 확인하세요.
- 9모든 저장 워크플로가 원래 입력 값을 사용하는지 확인하세요.
- 10중요한 소스 언어 워크플로가 is_normalizing = no를 기다리는지 확인하세요.
빠른 결정 규칙
표시 및 저장은 입력을 사용합니다. 정규 텍스트 일치는 GoLocal Query를 사용합니다.
Bubble가 사물, Option Set 옵션, ID 또는 안정적인 코드를 비교할 수 있는 경우 해당 개체를 직접 사용하세요. 번역된 자유 형식 텍스트 값이 표준 소스 언어 텍스트와 일치해야 하는 경우에만 GoLocal Query를 추가하세요.