[mirotalksfu] - use mutationObserver

هذا الالتزام موجود في:
Miroslav Pejic
2025-01-26 20:29:27 +01:00
الأصل aaf335df03
التزام d0713740da

عرض الملف

@@ -1,9 +1,15 @@
'use strict'; 'use strict';
function loadScript(src) {
return new Promise((resolve, reject) => {
const script = document.createElement('script'); const script = document.createElement('script');
script.setAttribute('async', ''); script.async = true;
script.setAttribute('src', 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'); script.src = src;
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script); document.head.appendChild(script);
});
}
function googleTranslateElementInit() { function googleTranslateElementInit() {
new google.translate.TranslateElement( new google.translate.TranslateElement(
@@ -14,18 +20,25 @@ function googleTranslateElementInit() {
'google_translate_element', 'google_translate_element',
); );
const interval = setInterval(() => { const language = BRAND?.app?.language || 'en';
const language = BRAND.app.language ? BRAND.app.language : 'en'; if (language === 'en') return; // No need to switch if default is 'en'
if (language === 'en') {
clearInterval(interval);
}
const observer = new MutationObserver(() => {
const select = document.querySelector('.goog-te-combo'); const select = document.querySelector('.goog-te-combo');
if (select) { if (select) {
select.value = language; select.value = language;
select.dispatchEvent(new Event('change')); select.dispatchEvent(new Event('change'));
clearInterval(interval); observer.disconnect();
} }
}, 500); });
observer.observe(document.body, { childList: true, subtree: true });
} }
(async function initGoogleTranslate() {
try {
await loadScript('https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
} catch (error) {
console.error('Failed to load Google Translate script:', error);
}
})();