Как определить включил ли пользователь 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 });
→ Ссылка