Как определить включил ли пользователь google translate на сайте с помощью js
Я имеею в виду вот эту штуку:
Могу ли я как то отслеживать, включает ли пользователь сайта перевод с помощью js?
Ответы (1 шт):
Автор решения: Grundy
→ Ссылка
При использовании google translate встроенного в Chrome корневому элементу html меняется атрибут lang на целевой, при переводе на русский будет установлено
lang="ru"
А так же добавляется класс вида translated-*, где вместо * может быть ltr либо rtl в зависимости от направления для целевого языка.
Таким образом для отслеживания перевода, достаточно следить за атрибутами элемента html, например с помощью MutationObserver
var observer = new MutationObserver((mutations)=>{
var classMutation = mutations.find(m => m.attributeName === 'class');
var langMutation = mutations.find(m => m.attributeName === 'lang');
if ((classMutation?.target.classList.contains('translated-ltr') ||
classMutation?.target.classList.contains('translated-rtl')) && langMutation) {
console.log('translated to', langMutation.target.lang);
}
});
observer.observe(document.documentElement, { attributes: true });
