fix(i18n): pasang penangkap event klik dan pembuat cookie googtrans
This commit is contained in:
+75
-4
@@ -1,5 +1,76 @@
|
||||
/**
|
||||
* EduKarsa Theme Core JavaScript
|
||||
* Native Zero Plugin Architecture
|
||||
*/
|
||||
|
||||
// 1. GLOBAL INITIALIZER UNTUK GOOGLE TRANSLATE
|
||||
window.googleTranslateElementInit = function() {
|
||||
if (typeof google !== 'undefined' && google.translate) {
|
||||
new google.translate.TranslateElement({
|
||||
pageLanguage: 'id',
|
||||
autoDisplay: false
|
||||
}, 'google_translate_element');
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
// Menu Toggle
|
||||
// 2. LOGIKA SWITCHER BAHASA & MANAJEMEN COOKIE GOOGTRANS
|
||||
function setLanguageCookie(lang) {
|
||||
const host = window.location.hostname;
|
||||
const rootDomain = '.' + host.replace(/^www\./, '');
|
||||
|
||||
if (lang === 'id') {
|
||||
// Reset ke Bahasa Asli (Indonesia)
|
||||
document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
|
||||
document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=" + host;
|
||||
document.cookie = "googtrans=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/; domain=" + rootDomain;
|
||||
} else {
|
||||
// Set bahasa tujuan (misal /id/en, /id/ar, dll.)
|
||||
const cookieVal = '/id/' + lang;
|
||||
document.cookie = "googtrans=" + cookieVal + "; path=/;";
|
||||
document.cookie = "googtrans=" + cookieVal + "; path=/; domain=" + host;
|
||||
document.cookie = "googtrans=" + cookieVal + "; path=/; domain=" + rootDomain;
|
||||
}
|
||||
window.location.reload();
|
||||
}
|
||||
|
||||
// Pasang Event Listener ke seluruh tombol bahasa (.lang-btn)
|
||||
const langButtons = document.querySelectorAll('.lang-btn');
|
||||
const matchCookie = document.cookie.match(/googtrans=\/id\/([a-zA-Z\-]+)/i);
|
||||
const activeLang = matchCookie ? matchCookie[1].toLowerCase() : 'id';
|
||||
|
||||
langButtons.forEach(function(btn) {
|
||||
const targetLang = (btn.getAttribute('data-lang') || '').toLowerCase();
|
||||
|
||||
// Tandai tombol yang sedang aktif
|
||||
if (targetLang === activeLang) {
|
||||
btn.classList.add('active');
|
||||
} else {
|
||||
btn.classList.remove('active');
|
||||
}
|
||||
|
||||
// Tangkap klik pergantian bahasa
|
||||
btn.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
const selectedLang = this.getAttribute('data-lang');
|
||||
if (selectedLang) {
|
||||
setLanguageCookie(selectedLang);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Sembunyikan paksa toolbar dan frame pop-up bawaan Google Translate
|
||||
setInterval(function() {
|
||||
if (document.body.style.top && document.body.style.top !== '0px') {
|
||||
document.body.style.top = '0px';
|
||||
}
|
||||
const banner = document.querySelector('.goog-te-banner-frame, iframe.goog-te-banner-frame, .VIpgJd-ZVi9od-ORHb-OEVmcd');
|
||||
if (banner) {
|
||||
banner.style.display = 'none';
|
||||
}
|
||||
}, 150);
|
||||
|
||||
// 3. MOBILE MENU TOGGLE
|
||||
const toggleBtn = document.getElementById("mobile-menu-toggle");
|
||||
const navMenu = document.getElementById("site-navigation");
|
||||
if (toggleBtn && navMenu) {
|
||||
@@ -9,7 +80,7 @@ document.addEventListener("DOMContentLoaded", function() {
|
||||
});
|
||||
}
|
||||
|
||||
// Back to Top
|
||||
// 4. BACK TO TOP BUTTON
|
||||
const bttBtn = document.getElementById("back-to-top");
|
||||
if (bttBtn) {
|
||||
window.addEventListener("scroll", function() {
|
||||
@@ -20,7 +91,7 @@ document.addEventListener("DOMContentLoaded", function() {
|
||||
});
|
||||
}
|
||||
|
||||
// Accessibility Panel
|
||||
// 5. TOOLBAR AKSESIBILITAS WCAG 2.1
|
||||
const a11yTrigger = document.getElementById("a11y-trigger");
|
||||
const a11yPanel = document.getElementById("a11y-panel");
|
||||
const a11yClose = document.getElementById("a11y-close");
|
||||
@@ -55,7 +126,7 @@ document.addEventListener("DOMContentLoaded", function() {
|
||||
});
|
||||
}
|
||||
|
||||
// Homepage Hero Slider Scroll
|
||||
// 6. HOMEPAGE SLIDER SCROLL OTOMATIS
|
||||
const slider = document.getElementById('hero-slider-wrapper');
|
||||
if (slider && slider.children.length > 1) {
|
||||
setInterval(function() {
|
||||
|
||||
Reference in New Issue
Block a user