[mirotalksfu] - use mutationObserver
هذا الالتزام موجود في:
@@ -1,9 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
const script = document.createElement('script');
|
||||
script.setAttribute('async', '');
|
||||
script.setAttribute('src', 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
|
||||
document.head.appendChild(script);
|
||||
function loadScript(src) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const script = document.createElement('script');
|
||||
script.async = true;
|
||||
script.src = src;
|
||||
script.onload = resolve;
|
||||
script.onerror = reject;
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
}
|
||||
|
||||
function googleTranslateElementInit() {
|
||||
new google.translate.TranslateElement(
|
||||
@@ -14,18 +20,25 @@ function googleTranslateElementInit() {
|
||||
'google_translate_element',
|
||||
);
|
||||
|
||||
const interval = setInterval(() => {
|
||||
const language = BRAND.app.language ? BRAND.app.language : 'en';
|
||||
|
||||
if (language === 'en') {
|
||||
clearInterval(interval);
|
||||
}
|
||||
const language = BRAND?.app?.language || 'en';
|
||||
if (language === 'en') return; // No need to switch if default is 'en'
|
||||
|
||||
const observer = new MutationObserver(() => {
|
||||
const select = document.querySelector('.goog-te-combo');
|
||||
if (select) {
|
||||
select.value = language;
|
||||
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);
|
||||
}
|
||||
})();
|
||||
|
||||
المرجع في مشكلة جديدة
حظر مستخدم