document.addEventListener("DOMContentLoaded", function() { console.log('gtranslate_abbr.js: DOMContentLoaded event fired. Script starting...'); // GTranslate 위젯이 완전히 로드되고 DOM에 렌더링될 때까지 충분히 기다립니다. // 기존 2000ms에서 500ms로 단축하여 언어 약자 변경을 가속화합니다. setTimeout(function() { console.log('gtranslate_abbr.js: setTimeout callback executed. Attempting to modify language text...'); const gtSelectedLink = document.querySelector('.gt_switcher_wrapper .gt_selected a'); if (gtSelectedLink) { let targetNodeForCurrentLang = null; for (const node of gtSelectedLink.childNodes) { if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length > 0) { targetNodeForCurrentLang = node; break; } if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'SPAN' && !node.hasAttribute('style')) { targetNodeForCurrentLang = node; break; } } if (targetNodeForCurrentLang) { console.log('gtranslate_abbr.js: Found current language display element. Content before change:', targetNodeForCurrentLang.textContent.trim()); replaceLanguageText(targetNodeForCurrentLang); } else { console.warn('gtranslate_abbr.js: Current language display text node/span not found. Check GTranslate DOM structure or increase timeout.'); } } else { console.warn('gtranslate_abbr.js: .gt_selected a element not found for current language display.'); } let menuItems = document.querySelectorAll('.gt_switcher_wrapper .gt_option a'); if (menuItems.length > 0) { menuItems.forEach(function(item) { let targetNodeForMenuItem = null; for (const node of item.childNodes) { if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length > 0) { targetNodeForMenuItem = node; break; } if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'SPAN' && !node.hasAttribute('style')) { targetNodeForMenuItem = node; break; } } if (targetNodeForMenuItem) { console.log(`gtranslate_abbr.js: Found dropdown item text node/span. Content before change: "${targetNodeForMenuItem.textContent.trim()}"`); replaceLanguageText(targetNodeForMenuItem); } else { console.warn(`gtranslate_abbr.js: Dropdown item text node/span not found for item: "${item.outerHTML}".`); } }); console.log('gtranslate_abbr.js: Modified dropdown menu items. Count:', menuItems.length); } else { console.warn('gtranslate_abbr.js: Dropdown menu items not found after timeout. Consider increasing timeout duration or checking selectors.'); } const targetNode = document.querySelector('.gt_switcher_wrapper'); if (targetNode) { console.log('gtranslate_abbr.js: Starting MutationObserver on .gt_switcher_wrapper'); const observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { const currentLangLinkObserved = document.querySelector('.gt_switcher_wrapper .gt_selected a'); if (currentLangLinkObserved) { let targetNodeForCurrentLangObserved = null; for (const node of currentLangLinkObserved.childNodes) { if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length > 0) { targetNodeForCurrentLangObserved = node; break; } if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'SPAN' && !node.hasAttribute('style')) { targetNodeForCurrentLangObserved = node; break; } } if (targetNodeForCurrentLangObserved && targetNodeForCurrentLangObserved.textContent.trim().length > 3) { replaceLanguageText(targetNodeForCurrentLangObserved); } } document.querySelectorAll('.gt_switcher_wrapper .gt_option a').forEach(function(item) { let targetNodeForMenuItemObserved = null; for (const node of item.childNodes) { if (node.nodeType === Node.TEXT_NODE && node.textContent.trim().length > 0) { targetNodeForMenuItemObserved = node; break; } if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'SPAN' && !node.hasAttribute('style')) { targetNodeForMenuItemObserved = node; break; } } if (targetNodeForMenuItemObserved && targetNodeForMenuItemObserved.textContent.trim().length > 3) { replaceLanguageText(targetNodeForMenuItemObserved); } }); }); }); observer.observe(targetNode, { childList: true, subtree: true, characterData: true, attributes: true }); console.log('gtranslate_abbr.js: MutationObserver successfully initialized.'); } else { console.warn('gtranslate_abbr.js: Target node for MutationObserver (.gt_switcher_wrapper) not found. MutationObserver will not run.'); } }, 80); // 여기서 지연 시간을 500ms로 줄였습니다. function replaceLanguageText(element) { let originalText = element.textContent.trim(); let newText = originalText; switch (originalText) { case 'Korean': newText = 'KR'; break; case 'English': newText = 'EN'; break; case 'Chinese (Simplified)': newText = 'CN'; break; case 'Russian': newText = 'RU'; break; case 'Japanese': newText = 'JP'; break; case 'Thai': newText = 'TH'; break; case 'Vietnamese': newText = 'VN'; break; case 'Indonesian': newText = 'ID'; break; case 'Mongolian': newText = 'MN'; break; } if (newText !== originalText) { element.textContent = newText; console.log(`gtranslate_abbr.js: Changed "${originalText}" to "${newText}".`); } } });