Назад в Центр знаний
Начало работы

Перевод страниц Google Translate в BotBrowser

Включите перевод страниц с помощью собственного ключа Google Cloud и явно управляйте приватностью, согласованностью профиля и затратами.

BotBrowser Team

Документация

Нужна структурированная документация по теме Начало работы?

Эта статья относится к редакционной библиотеке. Для пошаговой настройки, справки и постоянных обновлений переходите сразу в соответствующий раздел docs.

BotBrowser может передать управляемый клиентом GOOGLE_API_KEY процессу браузера для перевода страниц, но не предоставляет оплату, квоту, разрешение на доступ или согласие на отправку содержимого в Google Cloud.

TL;DR

  • Используйте собственный проект Google Cloud, ограниченный ключ и утверждённый маршрут.
  • Задайте GOOGLE_API_KEY до запуска браузера и сохраняйте выбранные профиль и политику данных.
  • Проверьте безопасную страницу и запишите версию, профиль, языки, маршрут и итог без содержимого страницы.

Contents

Чтение веб-страницы на другом языке должно оставаться обычной задачей браузера. При этом решение о переводе должно быть осознанным. Перевод отправляет необходимый текст внешнему сервису, расходует облачную квоту и зависит от сеанса, который создаёт запрос. BotBrowser поддерживает этот сценарий, если вы предоставляете и сами управляете ключом Cloud Translation API в Google Cloud.

Результат прост: откройте страницу, используйте обычную команду перевода браузера и проверьте переведённый текст. Контроль не менее важен: вы выбираете проект, который оплачивает запросы, маршруты, которым разрешено пользоваться ключом, профили сеанса и данные, которые можно передавать сервису.

Модель контроля перевода: страница проходит через явное решение браузера и попадает в облачный проект Google Cloud, которым управляет клиент; согласованность профиля и проверка приватности сопровождают весь процесс.

Что даёт перевод страниц

Если основной текст страницы написан не на целевом языке, браузер может запросить перевод и показать его в текущем сеансе. Это удобно для поддержки, исследований, проверки локализации, работы с контентом и разрешённых проверок качества. О том, как приложения читают язык браузера, рассказано в статье Язык браузера и локализация приложения.

Перевод является возможностью браузера, зависящей от внешнего сервиса. Страница может показывать связанные с переводом возможности, хотя полный сервис недоступен. Это разные результаты. Проверка возможности показывает, что браузер понимает функцию, но не доказывает успешность облачного запроса. Нужны действительный клиентский ключ, включённый сервис, оплата, доступная квота, разрешённый трафик, рабочий маршрут и страница, которую сервис может обработать.

Такое различие помогает правильно описывать ошибки. Если команда перевода отсутствует, проверьте язык страницы и настройки браузера. Если команда есть, но результат не приходит, проверьте проект, ограничения ключа, квоту, прокси и сеть. Не считайте неудачный запрос переведённой страницей и не принимайте видимую команду за доказательство доступности внешнего сервиса.

Подготовьте проект Google Cloud под своим управлением

Подготовьте следующее до первого рабочего сеанса:

  • Версию BotBrowser и профиль, соответствующие сценарию.
  • Проект Google Cloud, которым владеет или управляет ваша организация.
  • Включённый Cloud Translation API в этом проекте.
  • Связанный платёжный аккаунт в соответствии с текущими требованиями сервиса.
  • Политику квот для ожидаемых страниц и пользователей.
  • API key с ограничением на Cloud Translation API и реальную среду приложения.
  • Сетевой маршрут, по которому браузер может обращаться к нужным сервисам.

Для тестов используйте отдельный проект, если необходимо разделить расходы и доступ. Это также упрощает отзыв тестового ключа без влияния на другую нагрузку. Описывайте профиль, каталог пользовательских данных, прокси и способ запуска как одну единицу развёртывания. Так проще воспроизводить результат.

В Google Cloud Console создайте или выберите проект для перевода, включите Cloud Translation API, свяжите оплату и изучите актуальные цены и квоты. Создайте API key в разделах API и сервисы и Учётные данные. Ограничьте ключ Cloud Translation API и добавьте ограничение приложения, соответствующее месту запуска браузера. Для стабильного серверного выхода подойдёт ограничение по IP, для других вариантов потребуется другой тип. Выберите самое узкое рабочее ограничение и проверьте его из реального маршрута.

Не вставляйте настоящий ключ в статью, исходный файл, профиль, снимок экрана, запись терминала, версионируемый файл окружения или общий журнал. В примерах намеренно используются заполнители. Храните ключ в хранилище секретов развёртывания или вводите его в защищённой оболочке при запуске BotBrowser. При раскрытии отзовите или замените ключ в Google Cloud.

BotBrowser не предоставляет общий ключ перевода. Такое разделение оставляет под вашим контролем оплату, квоту, проверку доступа, хранение данных и реагирование на инциденты. Доступность Google Cloud и настройки аккаунта также остаются ответственностью развёртывания.

Запустите браузер с ключом

Переменная окружения должна существовать при запуске процесса BotBrowser. Установите её в том же окружении, из которого запускается браузер, вместе с обычными аргументами профиля:

GOOGLE_API_KEY='YOUR_API_KEY' \
chromium-browser \
  --bot-profile='/absolute/path/to/profile.enc' \
  --user-data-dir='/absolute/path/to/user-data' \
  about:blank

Это нерабочий заполнитель. Заменяйте его только в защищённой локальной или рабочей среде. После изменения переменной перезапустите BotBrowser. Изменение внешнего HTTP-клиента, скрипта страницы или более позднего дочернего процесса не настраивает процесс браузера.

В macOS и Linux экспортируйте переменную в той же оболочке, которая запускает браузер:

export GOOGLE_API_KEY='YOUR_API_KEY'
chromium-browser \
  --bot-profile='/absolute/path/to/profile.enc' \
  --user-data-dir='/absolute/path/to/user-data'

В PowerShell задайте окружение процесса до запуска:

$env:GOOGLE_API_KEY = 'YOUR_API_KEY'
& 'C:\path\to\chromium.exe' `
  '--bot-profile=C:\path\to\profile.enc' `
  '--user-data-dir=C:\path\to\user-data'

В Playwright или Puppeteer окружением владеет процесс, запускающий браузер. Передайте защищённое значение через эту границу и оставьте аргументы профиля в запуске браузера. Не помещайте ключ в JavaScript страницы и не добавляйте настоящий .env в репозиторий. Другие способы запуска описаны в материале BotBrowser Launcher: профили, прокси и запуск. Об использовании профиля из Selenium см. Интеграция браузерного профиля с Selenium.

Сохраняйте согласованность профиля

Перевод не должен приводить к смешиванию браузерных идентичностей или политик состояния. Загрузите профиль до навигации и определите политику каталога пользовательских данных. О выборе и запуске подходящего профиля рассказывает руководство по управлению профилями. Постоянный каталог сохраняет ожидаемую историю сеанса; новый каталог подходит для проверки нового отношения с сайтом. Не используйте один постоянный каталог для несвязанных идентичностей.

Профиль, версия браузера, хост и сетевой маршрут должны описывать один согласованный сеанс. Если профиль предназначен для конкретного семейства браузера или платформенного контекста, не меняйте эти условия во время проверки. Несогласованные параметры запуска затрудняют воспроизведение и могут открыть странице неожиданное состояние. О согласованности маршрута читайте в материале Согласованность прокси, DNS и WebRTC для браузерной идентичности.

В сценариях с несколькими профилями назначьте соответствующий профиль до начала сеанса и не меняйте настройки идентичности в течение его жизни. См. Per-Context Fingerprint для актуальной последовательности. Перевод должен выполняться внутри уже определённого сеанса, а не служить причиной менять его после навигации. Об управлении профилями см. Управление профилями браузера в BotBrowser.

Согласованность делает понятными семейство браузера, языковые предпочтения, сохранённое состояние и сетевой маршрут. Профиль управляет поведением и непрерывностью браузера. Он не выдаёт разрешение на доступ и не заменяет правила сайта.

Проверьте результат и устраняйте проблемы по порядку

Запишите browserVersion, profilePackage, sourceLanguage, targetLanguage и translationOutcome для утверждённого запуска.

Используйте ту же версию, профиль, прокси, способ запуска и целевой язык, что и в развёртывании:

  1. Убедитесь, что после настройки ключа процесс был перезапущен.
  2. Откройте страницу, основной текст которой не на целевом языке.
  3. Используйте обычную команду перевода из меню или контекстного меню.
  4. Убедитесь, что текст заметно изменился и результат читаем.
  5. Проверьте ожидаемое использование в проекте Google Cloud.
  6. Запишите профиль, маршрут, языки и результат, не сохраняя частный текст или секреты.

Проверьте страницу, которая должна переводиться, и страницу, которая должна остаться без изменений. Для форм, аккаунтов, клиентских записей и пользовательского текста используйте безопасную тестовую страницу, если политика данных явно не разрешает передачу.

Одной проверки возможности браузера недостаточно для доказательства доступности внешнего сервиса. Успех в одной среде не гарантирует такой же результат с другим прокси, профилем, квотой или платёжным проектом. Связывайте проверку с нужной средой.

Перевод недоступен. Проверьте, что ключ был установлен до запуска процесса, браузер перезапущен, Cloud Translation API включён, а оплата настроена. Убедитесь также, что языки подходят для перевода.

Доступ запрещён. Проверьте ограничения API и приложения. Убедитесь, что запрос идёт по разрешённому маршруту, а выбранный проект содержит ключ и платёжную конфигурацию.

Достигнута квота или лимит скорости. Изучите использование, дневные и поминутные лимиты. Установите границы против случайных расходов, сохранив нужную ёмкость. Не копируйте ключ другого проекта для обхода ограничения.

Запросы не проходят через прокси. Убедитесь, что прокси настроен на уровне браузера и разрешает нужные сервисы Google. Маршрутизацию на уровне браузера описывает документация по прокси. Сравните контролируемый тестовый маршрут с рабочим и держите ответственность за сеть и идентичность раздельной.

Ключ мог раскрыться. Немедленно отзовите или замените его, обновите защищённое окружение и удалите копии из каналов распространения. Не продолжайте работу с ключом, границы доступа которого неизвестны.

Результаты меняются между запусками. Сравните версию браузера, профиль, каталог данных, языки, прокси, хост, проект, квоту и время запуска. Меняйте одну переменную за раз. Операционные метаданные лучше снимков с частным текстом.

Защитите данные, контролируйте расходы и назначьте ответственных

Перевод отправляет Google текст, необходимый сервису. Это могут быть заголовки, абзацы, подписи и другой текст, выбранный процессом перевода. Он может содержать персональные, конфиденциальные, регулируемые или коммерчески чувствительные сведения. Перед переводом проверьте правила обработки данных.

Используйте одобренные тестовые страницы. Не передавайте секреты, материалы восстановления аккаунта, платёжные данные, сведения о здоровье, клиентские записи и конфиденциальный деловой текст, если это прямо не разрешено политикой. Языковая функция не должна незаметно расширять список систем, получающих информацию.

Зафиксируйте, какой проект принимает запросы, кто может менять ключ, как обрабатываются квотные предупреждения и как заменяются раскрытые ключи. Используйте минимальные права и храните только операционные метаданные. Если достаточно записи перевод выполнен или квота отклонена, не копируйте текст страницы в заявку.

Приватность и согласованность усиливают друг друга. Стабильные профиль и маршрут показывают, какие данные покидают сеанс и где возникла ошибка. Ясная политика показывает, когда перевод допустим. Одно не заменяет другое: профиль сам по себе не делает чувствительный текст безопасным, а приватная сеть не делает любой внешний запрос приемлемым. Более широкий взгляд даёт материал Конфиденциальность браузерных процессов на этапе проектирования.

Google Cloud управляет ценами и квотами. Настройте бюджетное предупреждение, регулярно проверяйте использование и задайте максимум запросов для каждого сценария. Длинная страница может расходовать намного больше символов, чем короткая, а повторные попытки увеличивают расход во время сбоя.

Если командам нужны разные бюджеты, разделите проекты или границы сервиса. Назначьте каждому владельцу квоту и путь эскалации. Готовность к рабочему использованию означает не только успешный первый запрос, но и известный предел расходов, рабочий маршрут, возможность заменить ключ и понятную реакцию на ошибку оплаты или квоты.

Считайте доступность условной. Google Cloud, сеть, профиль, исходная страница и браузерный сеанс вместе определяют результат. Если зависимость недоступна, сохраните исходную страницу и сообщите, что перевод недоступен. Не отмечайте страницу как переведённую только потому, что команда видна.

До включения:

  • Выберите политику данных и безопасную страницу проверки.
  • Выберите проект Google Cloud под управлением клиента.
  • Включите API, оплату, квотные ограничения и предупреждения.
  • Ограничьте ключ нужными API и маршрутом приложения.
  • Храните ключ вне кода, профилей, снимков и общих журналов.
  • Выберите согласованные профиль, версию, политику данных и прокси.

Во время запуска:

  • Запускайте BotBrowser, когда ключ уже есть в его окружении.
  • Используйте обычную команду перевода браузера.
  • Проверяйте видимый результат и сохраняйте оригинал при сбое.
  • Следите за ошибками доступа, квоты, оплаты и сети.
  • Записывайте метаданные без частного текста и секретов.

После запуска:

  • Проверьте ожидаемое использование в Google Cloud.
  • Проверьте язык и состояние страницы.
  • Замените ключ при подозрении на раскрытие или смене владельца.
  • Пересмотрите приватность и квоту при изменении сценария, профиля или аудитории.

Первый успешный перевод лишь начинает рабочий процесс. Если функцией пользуются несколько человек или запланированные задания, назначьте для сценария понятного ответственного. Он должен знать, какой облачный проект принимает запросы, какой профиль утверждён, какой маршрут ожидается и что делать, когда сервис недоступен. Тот, кто управляет профилями браузера, не обязан автоматически иметь право менять облачную оплату, а тот, кто управляет облачным проектом, не обязан автоматически видеть содержимое страниц. Разделение ответственности упрощает проверку.

Разделяйте решения для разработки, промежуточной среды и рабочей среды. Тестовый проект может иметь меньшую квоту и безопасную страницу-образец. Рабочий проект может иметь другой бюджет, другой адрес для предупреждений и другое ограничение ключа. Не считайте, что ключ, работающий с ноутбука, заработает с маршрута сервера, а профиль, подготовленный для одной версии, подойдёт для каждой версии браузера. Запишите сочетание, которое прошло видимую пользователю проверку.

У повторяющихся сеансов тоже должна быть политика состояния. Решите, сохраняет ли сеанс каталог пользовательских данных, начинается ли с нового каталога или следует задокументированному графику замены. Этот выбор влияет не только на файлы cookie. Языковые предпочтения, решения для сайтов и другое состояние браузера могут изменить вид страницы и трактовку последующей проверки. Новый сеанс не обязательно безопаснее, а постоянный не обязательно ошибочен. Важно, чтобы выбор был осознанным и соответствовал политике данных.

Если запрос на перевод не удался, сохраните исходную страницу и покажите оператору полезный статус. Отличайте недоступный сервис от непереведённой страницы, страницы, которой перевод не нужен, и страницы, исключённой политикой данных. Эти случаи требуют разных действий. При сбое сервиса может понадобиться повтор или эскалация. Исключённая страница требует решения по политике. Страница уже на целевом языке не требует облачного запроса. Ясные статусы сокращают лишние повторы и не тратят квоту, пока кто-то ищет не ту проблему.

Пересматривайте сценарий при любом изменении границ: новая версия браузера, новое семейство профилей, новый хост, новый прокси, другой облачный проект, другая аудитория или другая классификация данных. Запустите ту же безопасную страницу проверки, сравните видимый результат и проверьте ожидаемое использование. Храните только операционные данные, нужные для следующего решения. Это защищает приватность и делает согласованность измеримой.

BotBrowser поддерживает встроенный в браузер перевод страниц: при запуске он читает предоставленный клиентом GOOGLE_API_KEY из окружения процесса браузера. Поэтому ваша команда может выполнять перевод в собственном проекте Google Cloud, с собственной квотой и политикой оплаты, вместе с выбранными профилем и прокси. BotBrowser не предоставляет общий ключ перевода и не может гарантировать успешный перевод: ограничения ключа, оплата, квота, доступность сервиса, сетевой маршрут и исходная страница зависят от Google Cloud и вашей среды, а не от BotBrowser. Он не заменяет вашу собственную проверку обработки данных.

Заключение

Рассматривайте перевод как облачную интеграцию клиента: загрузите утверждённый профиль, задайте GOOGLE_API_KEY до запуска, ограничьте ключ и маршрут и сохраните минимальную запись о безопасной странице. Браузер может запросить перевод, но не решает, разрешено ли содержимому покидать вашу среду.

Открытые источники

#Google Translate#Перевод Страниц#Приватность#Профили#Согласованность Браузера

Эта статья входит в руководство: Начало работы с автоматизацией браузера: карта

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.