Полное руководство по установке
Все, что вам нужно для установки, настройки и использования GoLocal! для создания вашего Многоязычное приложение Bubble.io.
Безопасные данные Bubble, стабильный перевод пользовательского интерфейса и явная многоязычная логика
Обновите плагин с Откройте вкладку Bubble Плагины перед тестированием функций, указанных ниже. Конфигурация Project, переводы и оплата остаются привязанными к проекту GoLocal. Разработчикам приложений не нужно вставлять или поддерживать сценарий в заголовке HTML Bubble; опубликованная версия плагина содержит поддерживаемую среду выполнения.
Редактируемые данные остаются нетронутыми.
Обычные входные данные, многострочные входные данные, редакторы Quill и другие области contenteditable не подвергаются обратному преобразованию во время ввода пользователем.
Исключения повторного использования контента
Защищайте введенные пользователем значения базы данных и ячейки повторяющейся группы с do_not_translate_selectors вместо повторяющихся идентификаторов HTML.
Безопасный автоматический обратный поиск
Bubble SearchBox, раскрывающийся список, устаревшие MultiDropdown и Select2 MultiDropdown может сопоставлять переведенные варианты с исходным языком значения.
Элемент GoLocal Query
Используйте один независимый элемент GoLocal Query для каждого обычного ввода только в том случае, если этот ввод управляет текстовым поиском, условием или фильтром API на исходном языке.
1 Установите плагин
GoLocal! доступен в виде бесплатного плагина на торговой площадке Bubble.io. Вы ничего не платите за его установку — сам плагин стоит 0 долларов. Оплата применяется только при подключении его к проекту GoLocal! с помощью ключа API.
Откройте редактор Bubble → вкладка «Плагины».
Нажмите «+ Добавить плагины» и найдите «GoLocal» или «Автопереводчик».
Установите GoLocal! — Автопереводчик. Если он уже установлен, обновите его до последней опубликованной версии.
Перетащите элемент GoLocal! на любую страницу (обычно это многоразовый заголовок). Элемент невидим.
2 Создайте свою учетную запись и Project
Чтобы активировать плагин, вам необходимо ключ API. Ключи API генерируются на вашей информационной панели GoLocal! при создании проекта.
A 5-дневная бесплатная пробная версия запускается автоматически. Кредитная карта не требуется. Ваш API сгенерируется немедленно.
Скопируйте ключ API — он понадобится вам при настройке плагина в Bubble.
myapp.bubbleapps.io, введите именно это.3 Настройте плагин
Нажмите на элемент GoLocal!. Минимум одно поле:
Минимально необходимая настройка:
api_key→ вставьте ключ API из вашего проекта GoLocal!С помощью только ключа API GoLocal! загружает конфигурацию проекта, использует браузер посетителя или сохраненный выбор виджета, переводит видимый текст пользовательского интерфейса, и показывает переключатель языка.
4 Поля плагинов — ссылка
api_keyОбязательноКлюч API вашего проекта с панели управления GoLocal!.
Привязка к домену — безопасно включать в код на стороне клиента.
source_languageНеобязательноДвухбуквенный код исходного языка вашего приложения. Примеры: en, uk, de.
Обычно оставляйте это поле пустым, если исходный язык уже настроен в проекте GoLocal. Устанавливайте его только в том случае, если вам намеренно необходимо переопределить значение проекта/Worker.
target_languageНеобязательноОбычно оставляйте это поле пустым. Виджет и постоянный выбор посетителя контролируют активный язык при загрузке страницы.
Жестко запрограммированное значение, такое как fr , принудительно устанавливает этот язык при каждой инициализации элемента и может переопределить выбор посетителя. Привязывайте динамическое значение только в том случае, если ваше приложение Bubble намеренно владеет состоянием языка и предоставляет один стабильный код языка на каждой странице.
enabledНеобязательноФлажок, определяющий, активен ли перевод. По умолчанию: установлен.
show_widgetНеобязательноПоказывать встроенный виджет переключения языка. По умолчанию: установлен. Отключайте его только тогда, когда ваше приложение Bubble предоставляет собственные языковые элементы управления и вызовы. switch_language.
widget_positionНеобязательноПоложение виджета: bottom-right (по умолчанию), bottom-left, top-right, top-left.
dataset_1НеобязательноПредварительно переведите базу данных Bubble для мгновенной загрузки.
Структурированный формат (рекомендуется):
// Настройка Bubble:
Выполните поиск for (Категории): форматировать как текст
Содержимое: {Название этой категории; Название этой категории; Тело этой категории}
Разделитель: ,
// Добавить другой тип:
:append Выполнить поиск (Cures) :format as text
Содержимое: {Заголовок этого лекарства ; Имя этого лекарства; Рецепт этого лекарства}
Разделитель: ,
Поля внутри { } разделены ; — блоки, разделенные ,. Подробнее см. в разделе Наборы данных .
do_not_translate_idsНеобязательноИдентификаторы элементов, разделенные запятыми, которые никогда не преобразовываются. Указание идентификатора группы/контейнера исключает всех дочерних элементов.
Пример: user-bio, code-block, brand-section
Идентификаторы HTML должны быть уникальными. Не используйте повторно один и тот же идентификатор в ячейках повторяющейся группы; вместо этого используйте do_not_translate_selectors с классом.
do_not_translate_selectorsНеобязательноСелекторы CSS для многократного использования или повторяющегося контента, который должен оставаться в том же виде, в котором он сохранен. Соответствующий элемент и все его дочерние элементы исключаются.
Примеры: .gl-user-content, [data-user-content], [id^="gl-user-content-"]
Рекомендуется для вводимых пользователем значений базы данных и повторяющихся групп. Селектор класса или префикса идентификатора может безопасно сопоставить множество строк без создания повторяющихся идентификаторов HTML.
private_translate_idsНеобязательноЭлементы, которые переводятся но переводы не кэшируются глобально. Используйте для данных каждого пользователя (имена, адреса).
Пример: user-name, order-address
Если содержимое должно оставаться в точности таким, каким его ввел пользователь, не используйте это поле. Вместо этого исключите его с помощью do_not_translate_selectors.
5 Наборы данных — перевод базы данных Bubble
Большинство приложений Bubble отображают данные из базы данных. Без наборов данных динамический контент переводится при первом просмотре, что приводит к заметной задержке. Наборы данных предварительно переводят все для мгновенной загрузки.
Формат 1: Структурированный — для элементов с несколькими полями (рекомендуется)
Оберните каждый элемент в {}, разделите поля ; (точкой с запятой), используйте , в качестве разделителя между элементы.
// Bubble: выполнить поиск (Категории) :format as text
Содержимое: {Название этой категории; Название этой категории; Тело этой категории}
Разделитель: ,
// Append: выполнить поиск (Cures) :format as text
Содержимое: {Заголовок этого лекарства ; Имя этого лекарства; Рецепт этого лекарства}
Разделитель: ,
// Результат: {Здоровье;Хорошее самочувствие;Руководство...},{Красота;Уход за кожей;Правила...},{Аспирин;Облегчение;Принимайте 2 раза...}
{} разделить по ; — блоки разделяются по , — запятые в тексте безопасны.Формат 2: Простой — для списки с одним значением
Для коротких значений без запятых (имена категорий, теги):
Содержимое: Имя этой категории Разделитель: ,
// Выходные данные: Электроника, Одежда, Книги, Игрушки
Важно: Если текст может содержать запятые, всегда используйте структурированный формат с {field;field} оберткой.
normalized_query только в фильтре или условии. См. полное руководство по Bubble.6 Bubble Состояния, события и Действия
Основной элемент GoLocal! владеет переводом страницы и предоставляет активный язык Bubble. Используйте его состояния в условиях и событиях, чтобы запускать рабочие процессы в нужной точке жизненного цикла перевода.
1. Готовность к выполнению
translator_ready = yes означает, что GoLocal инициализирован. Это не означает, что каждый динамический элемент Bubble завершил трансляцию.
2. Язык изменен
language_changed срабатывает при изменении активного языка. Прочтите current_language здесь.
3. Pass Complete
translation_complete срабатывает после завершения пакета перевода. Динамический контент может создавать более поздние пакеты.
current_languagetextАктивный двухбуквенный код языка. Используйте его для ссылок PDF, условных операторов Bubble и пользовательского интерфейса на языке, принадлежащем приложению.
detected_languagetextОбнаруженный исходный язык/язык браузера, сообщаемый средой выполнения.
translator_readyyes/noДа, после завершения среды выполнения перевода инициализировано.
is_translatingyes/noДа, пока GoLocal обрабатывает проход перевода.
translation_completeyes/noФлаг завершения для самого последнего прохода.
total_textsnumberКоличество текстовых элементов, наблюдаемых в текущей среде выполнения. сеанс.
cached_local / cached_bundle / cached_servernumberСчетчики диагностического кэша. Полезно для поддержки и проверки производительности.
переведено/ошибки/tokens_usednumberСчетчики трансляции и ошибок во время выполнения.
last_error / preload_statustextПоследние ошибки во время выполнения и состояние предварительной загрузки для диагностики.
Действия элемента
switch_language— переключиться на необходимое поле действияtarget_lang, напримерfr.Start_translation— начать или возобновить наблюдение и перевод.Stop_translation— остановить наблюдение и перевод до перезапуска.rescan_dom— явно сканировать контент, отображаемый после всплывающего окна Bubble, повторно используемого элемента или обновления повторяющейся группы.
Пример: показать ссылку на французский PDF
Создайте условие Bubble для ссылки или группы: When GoLocal! A's current_language is "fr". Если рабочий процесс должен запускаться, когда посетитель переключает язык, используйте When GoLocal! A language_changed. Вам не нужно ждать, translation_complete просто прочтет выбранный язык.
7 Пользовательские данные, формы и повторяющиеся группы
GoLocal переводит текст интерфейса, но данные, введенные или созданные вашими пользователями, должны оставаться стабильными. Текущая среда выполнения защищает обычные входные данные, многострочные входные данные, редакторы Quill и другие contenteditable области, пока пользователь печатает.
Безопасно по умолчанию
- • Значения входных и многострочных входных данных сохраняются точно так, как они были напечатаны.
- • Quill
.ql-editorи другие редактируемые области пропускаются при этом. ввод текста. - • Электронные письма, пароли, числа, даты, идентификаторы и файлы всегда должны использовать исходные значения Bubble.
Дисплей требует исключения
Когда сохраненный пользовательский контент позже отображается с помощью обычного текстового элемента Bubble, GoLocal не может знать, является ли это копией пользовательского интерфейса или пользовательскими данными. Отметьте этот отображаемый элемент или его самый маленький контейнер как зону без перевода.
Рекомендуемая настройка повторяющейся группы
- 1. Выберите только элемент «Текст», который отображает пользовательский контент. Не исключайте всю повторяющуюся группу, если ее кнопки, заголовки и статические метки все равно должны переводиться.
- 2. Присвойте каждой строке уникальный динамический идентификатор.gl-user-content-Уникальный идентификатор вещи текущей ячейки
- 3. Добавьте один селектор к элементу GoLocal.do_not_translate_selectors = [id^="gl-user-content-"]
Если ваша установка Bubble или повторно используемый элемент могут применять собственный класс, .gl-user-content это еще проще. Добавьте этот класс один раз в do_not_translate_selectors.
Поддерживаемые маркеры без перевода
Среда выполнения учитывает data-tr-skip, data-no-translate, translate="no"и вложенный .notranslate элементы. Настроенные поля селектора ID и CSS остаются самым простым методом, встроенным в Bubble.
Пропустить или приватный перевод
do_not_translate_* сохраняет исходное значение. private_translate_ids по-прежнему переводит значение, но предотвращает использование общего глобального кэша. Используйте частный перевод только в том случае, если контент должен быть действительно переведен.
home или check_box. Если значок имеет текстовую основу, исключите самый маленький контейнер значка/элемента управления, чтобы ключевое слово глифа никогда не переводилось.8 Редактор перевода и ручные исправления
Используйте редактор перевода для фиксированной копии продукта: навигационных меток, заголовков, кнопок, справочного текста и других фраз, для которых должен быть один проверенный перевод. Записи, введенные вручную, заблокированы и не заменяются последующим автоматическим переводом.
Хорошее исправление вручную
Источник План обновления → проверенная фраза продукта на французском языке Améliorer le plan. Это стабильная копия интерфейса, принадлежащая редактору.
Не исправляйте пользовательские данные по одной строке
Имя, созданное клиентом, например Travail à domicile , должно быть исключено из элемента отображения Bubble. Добавление тысяч переводов идентификационных данных не является безопасной заменой зоны без перевода.
- 1. Откройте проект на панели управления GoLocal и выберите Переводы.
- 2. Выполните поиск по точной исходной фразе и языковой паре.
- 3. Отредактируйте целевое значение или используйте Добавить перевод для нового точного источника. фраза.
- 4. Сохранить. Запись помечается вручную, версия пакета меняется, а среда выполнения обновляет словарь проекта.
- 5. Повторно проверьте точный маршрут Bubble, на котором отображается фраза. Используйте
rescan_domтолько если фраза появляется после необычного стороннего рендеринга.
en → fr, а не auto → fr. Среда выполнения запрашивает разрешенную исходную пару проекта.9 Как работает перевод
GoLocal наблюдает за обработанным Bubble DOM, сначала применяет переводы из пакета проекта и локального кэша и запрашивает только отсутствующие или измененные фразы. Он продолжает наблюдать за всплывающими окнами, повторно используемыми элементами и повторяющимися группами, которые Bubble отображает позже.
Первоначальная загрузка страницы
Среда выполнения определяет исходный и целевой языки, загружает текущий пакет проекта, сканирует видимый текст пользовательского интерфейса и отображает страницу с помощью встроенного потока анти-мерцания.
Кэшированные переводы
Известные фразы применяются из пакета или кэш браузера без их регенерации. Измененная версия пакета делает недействительными устаревшие кэшированные значения.
Динамическое содержимое Bubble
Обозреватель DOM выбирает вновь отображаемые всплывающие окна, повторно используемые элементы, условно видимые группы и ячейки повторяющихся групп. rescan_dom является явным резервным вариантом.
10 Устранение неполадок и тестирование выпуска
Страница сбрасывается на один язык
Оставьте target_language пустым на каждой странице и повторно используйте элемент GoLocal, если ваше приложение Bubble намеренно не владеет этим языком. При инициализации повторно применяется жестко закодированное значение.
Виджет отсутствует
Подтвердите, что show_widget отмечен, установлена новейшая версия плагина и только один предназначенный элемент GoLocal управляет страницей. Затем протестируйте вне режима пошагового отладчика Bubble.
Всплывающее окно или новая строка повторяющейся группы остаются непереведенными
Подождите, пока элемент станет видимым. Наблюдатель обычно находит его автоматически; если сторонний элемент отображается необычно, запустите rescan_dom после отображения всплывающего окна или группы.
Ввод или форматированный текст изменяются во время ввода
Обновите плагин, подтвердите текущую среду выполнения и убедитесь, что рабочий процесс сохранения считывает исходное значение ввода/редактора — не переведенный отображаемый текст или normalized_query.
Созданный пользователем французский текст переводится еще раз
Исключите отображаемый текст/контейнер через do_not_translate_selectors. ProВыберите наименьшее динамическое значение, а не весь статический пользовательский интерфейс вокруг него.
Ручная коррекция возвращается в автоматический режим.
Текущие введенные вручную записи заблокированы. Подтвердите, что вы отредактировали тот же исходный текст и точную языковую пару, используемую в среде выполнения, а затем отправьте проект, маршрут, фразу и время тестирования в службу поддержки.
Названия месяцев и дней остаются на английском языке.
Встроенный браузер или хром выбора даты Bubble соответствует языковому стандарту браузера/элемента управления. GoLocal переводит окружающие метки, но не переписывает внутренний пользовательский интерфейс выбора даты.
Chrome предлагает собственный перевод страниц
Плагин уже помечает документ как непереводимый для перевода браузером, позволяя при этом запускать сам GoLocal. Обновите плагин; не добавляйте второе расширение перевода или скрипт.
После перевода текст переносится по-другому.
GoLocal сохраняет типографику Bubble. Переведенные фразы могут быть длиннее, поэтому проверяйте минимальную ширину, максимальную ширину Bubble, высоту подгонки, переполнение и правила реагирования на каждой точке останова.
Контрольный список принятия Bubble
- ✓Переключайте источник → целевой → источник без обновления.
- ✓Перемещайтесь между всеми страницами Bubble и многоразовыми заголовками.
- ✓Открывайте всплывающие окна и загружайте строки повторяющейся группы после загрузки страницы.
- ✓Введите, вставьте, отредактируйте, сохраните и повторно откройте поля обычного и форматированного текста.
- ✓Проверьте одно исключенное значение пользовательских данных внутри каждой повторяющейся группы.
- ✓Протестируйте SearchBox, раскрывающийся список, поиск по наследию/Select2 MultiDropdown.
- ✓Протестируйте каждый current_language условная ссылка и ссылка на PDF/ресурс.
- ✓Повторно протестируйте Chrome, Safari, ширину мобильного устройства и частный сеанс.
[GoLocal v4].11 Ценамии выставлением счетов
Три плана, все с неограниченным количеством слов для перевода и неограниченной целью языки.
| Функция | Starter | Pro | Business |
|---|---|---|---|
| Месячная цена | $15/mo | $35/mo | $89/mo |
| Годовая цена | $149/yr | $349/yr | $890/yr |
| Цель языки | Неограниченно | Неограниченно | Неограниченно |
| Ограничение MAU | 30K | 150K | 1M |
| Proобъектов | 1 | 1 | 2 |
MAU
Уникальные посетители, просмотревшие переводы. Боты отфильтрованы. 10 % бесплатно, затем дополнительно 3/10 тысяч долларов США.
Языки
Все платные планы включают неограниченное количество целевых языков без дополнительной платы за каждый язык.
5-дневная бесплатная пробная версия
Каждый новый проект начинается с бесплатной пробной версии. Кредитная карта не требуется.
12 Партнер Program
Зарабатывайте деньги, рекомендуя GoLocal!
Поделитесь своей реферальной ссылкой — зарабатывайте регулярные комиссионные за каждого привлеченного платежеспособного клиента.
Зарегистрируйтесь как партнер
Панель управления → вкладка «Партнер» → «Присоединиться к партнеру Program». Получите свою уникальную реферальную ссылку.
Поделитесь своей ссылкой
Блог, YouTube, форум Bubble, социальные сети, учебные пособия или напрямую с клиентами.
Получайте комиссионные
Регулярные комиссии в течение всего срока действия подписки каждого приглашенного пользователя.
Получайте оплату
Запрашивайте выплату посредством банковского перевода или PayPal, когда баланс достигает минимального порога.
Готовы сделать свое приложение многоязычным?
Установите бесплатный плагин, создайте проект, вставьте ключ API — и ваше приложение Bubble будет говорить на всех языках.