Вопрос или проблема
Мой сайт использует плагин (Google Language Translator), чтобы применять перевод текста от Google (см. здесь — флаги в верхней части страницы переключают язык). Если я переключаю на другой язык, закрываю браузер, заново открываю браузер и снова открываю свою страницу, отображается тот же язык. Как браузер знает, что нужно отображать тот же язык, что и раньше?
Есть ли какая-то переменная, установленная где-то? Возможно, куки или идентификатор сессии? Или, может быть, какая-то переменная JavaScript? Я просмотрел исходный код, но ничего очевидного не увидел.
Я пытался связаться с разработчиком плагина, но он не ответил :-/
Мотивация моего вопроса заключается в том, что теперь я использую отдельный плагин (WPML), чтобы создать ручной французский перевод моего сайта. Но когда посетитель переключается между переводами Google и этим ручным французским сайтом, возникают проблемы. Например, если посетитель переключается на китайский, а затем пытается получить доступ к французскому сайту, страница отображается вот так. На первый взгляд кажется, что браузер продолжает считать, что нужно применить китайский перевод Google.
Ответы в этом внешнем обсуждении привели меня к открытию того, что действительно устанавливается куки в браузере, которое указывает на применение перевода Google. Это та информация, которую я искал.
ред.: В частности, плагин отображает языковую панель Google на моем сайте. Когда посетитель использует эту языковую панель для переключения языка страницы, устанавливается куки googtrans
на моей странице, соответствующее указанному языку (скриншот). Насколько я понимаю, куки добавляется внешним скриптом, размещенным Google, а не плагином. Поэтому я не могу удалить куки или заставить его истечь.
Ответ или решение
Когда вы используете плагин Google Language Translator на своем сайте, браузер определяет, какой язык отображать, в основном благодаря установке cookie, созданного на основе взаимодействия пользователей с языковой панелью.
Как работает механизм перевода Google?
-
Использование плагина: Когда вы устанавливаете и активируете плагин Google Language Translator, он добавляет в ваш сайт определенные скрипты и элементы управления языком. Эти элементы позволяют пользователю выбирать язык перевода на странице с помощью флагов или выпадающего списка.
-
Установка Cookies: Когда пользователь выбирает другой язык, плагин отправляет команду на установку cookie в браузере пользователя с определенным именем –
googtrans
. Типичная структура cookie выглядит следующим образом:googtrans=/en/fr
. Последняя часть этого cookie указывает, что пользователь выбрал французский язык. Это cookie сохраняется в браузере и позволяет сохранить выбор пользователя на его следующем посещении сайта. Это именно то, что вы наблюдаете, когда после закрытия и повторного открытия браузера выбранный язык сохраняется. -
Скрипты Google: Как вы заметили, cookie добавлен с помощью внешнего скрипта, который хостится Google. Это означает, что вы, как пользователь плагина, не можете напрямую изменить или удалить этот cookie с помощью вашего собственного кода. Cookie будет передаваться браузером вместе с запросами на сервер, и когда браузер загружает страницу, скрипты видят установленный cookie и применяют соответствующий перевод.
Проблема с WPML и Google Translate
Вы упомянули, что у вас возникли проблемы с переключением между Google Translate и вашими собственными переводами, созданными с помощью WPML. Это связано с тем, что оба механизма (плагин Google и WPML) управляют языком по-разному:
- Конфликт между плагинами: Как только пользователь выбрал язык с помощью Google Translate, вы сохраняете информацию о переводе в cookie. Если затем вы переключитесь на страница, созданная плагином WPML, браузер продолжает использовать cookie
googtrans
, и, следовательно, может возникнуть конфликт с настройками WPML. Например, если пользователю отображается контент на китайском языке через Google Translate, а затем он пытается получить доступ к переводу WPML на французский, могут возникнуть несоответствия в отображаемом контенте.
Рекомендуемые действия
-
Отладка конфликтов: Проверьте, как ваш сайт обрабатывает языковые переключатели. Возможно, стоит реализовать логику, позволяющую очищать cookie
googtrans
при переключении на язык, управляемый WPML. -
Настройка переходов: Рассмотрите возможность создания отдельной кнопки или механизма, который очищает или игнорирует cookie
googtrans
при переключении между языками. -
Обратитесь к разработчикам: Если у вас продолжают возникать проблемы, настоятельно рекомендуем обратиться к разработчикам обоих плагинов (Google Language Translator и WPML), чтобы выяснить, как они могут взаимодействовать и какие существуют рекомендации по их совместимости.
Ваша проблема является распространенной среди пользователей, использующих несколько языковых плагинов, и требует careful attention! Надеюсь, что это объяснение поможет лучше понять, как работает механизм перевода и почему возникают проблемы.