'tr': 'https://flagcdn.com/w20/tr.png',
'es': 'https://flagcdn.com/w20/es.png',
'ru': 'https://flagcdn.com/w20/ru.png',
'zh': 'https://flagcdn.com/w20/cn.png',
'ja': 'https://flagcdn.com/w20/jp.png',
'ko': 'https://flagcdn.com/w20/kr.png',
'vi': 'https://flagcdn.com/w20/vn.png',
'de': 'https://flagcdn.com/w20/de.png',
};
// Mevcut dil (varsayılan Türkçe)
var currentLangCode = 'tr';
// Dil menüsü fonksiyonlarını başlat
function initLanguageMenu() {
var languageButton = document.getElementById('menu-ac');
var languageDropdown = document.getElementById('language-menu');
var languageSearchInput = document.getElementById('mt-language-search-input');
var languageList = document.getElementById('mt-language-list');
var chevron = document.getElementById('mt-chevron');
var currentFlag = document.getElementById('mt-current-flag');
var currentLang = document.getElementById('mt-current-lang');
if (!languageButton || !languageDropdown) return;
// Dil menüsünü aç/kapa - önce mevcut listener'ları kaldır
var toggleMenu = function(e) {
if (e) {
e.stopPropagation();
e.preventDefault();
}
var isActive = languageDropdown.classList.contains('active');
if (isActive) {
languageDropdown.classList.remove('active');
if (chevron) chevron.classList.remove('up');
} else {
languageDropdown.classList.add('active');
if (chevron) chevron.classList.add('up');
}
};
// Mevcut listener'ı kaldır ve yenisini ekle
languageButton.onclick = null;
// Capture phase'de ekle ki diğer listener'lardan önce çalışsın
languageButton.addEventListener('click', toggleMenu, true);
// Dışarı tıklandığında kapat
var closeMenu = function(e) {
if (languageDropdown.classList.contains('active')) {
if (!languageButton.contains(e.target) && !languageDropdown.contains(e.target)) {
languageDropdown.classList.remove('active');
if (chevron) chevron.classList.remove('up');
}
}
};
// Capture phase'de dinle ki diğer listener'lardan önce çalışsın
document.addEventListener('click', closeMenu, true);
// Arama fonksiyonu
if (languageSearchInput && languageList) {
languageSearchInput.addEventListener('input', function(e) {
var searchTerm = e.target.value.toLowerCase();
var items = languageList.querySelectorAll('.mt-language-item');
items.forEach(function(item) {
var name = item.getAttribute('data-name') || '';
if (name.includes(searchTerm)) {
item.style.display = '';
} else {
item.style.display = 'none';
}
});
});
}
// Dil seçildiğinde butonu güncelle
if (languageList) {
var languageItems = languageList.querySelectorAll('.mt-language-item');
languageItems.forEach(function(item) {
item.addEventListener('click', function(e) {
var langCode = item.getAttribute('data-lang');
var langName = item.querySelector('.mt-language-item-name').textContent;
if (currentFlag) {
currentFlag.src = flagMap[langCode] || 'https://flagcdn.com/w20/xx.png';
currentFlag.alt = langName;
}
if (currentLang) {
currentLang.textContent = langName;
}
currentLangCode = langCode;
// Menüyü kapat
languageDropdown.classList.remove('active');
if (chevron) {
chevron.classList.remove('up');
}
});
});
}
}
// DOM yüklendiğinde başlat - hemen çalıştır
function runInit() {
setTimeout(initLanguageMenu, 10);
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', runInit);
} else {
runInit();
}
// Cookie kontrolü
function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function setCookie(name, value, hours) {
var expires = "";
if (hours) {
var date = new Date();
date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
// Tarayıcı dilini al
function getBrowserLanguage() {
var lang = navigator.language || navigator.userLanguage;
// Sadece dil kodunu al (örn: "es-ES" -> "es", "en-US" -> "en")
return lang.split('-')[0].toLowerCase();
}
// Tarayıcı diline göre eşleşen siteyi bul
function findMatchingSite(browserLang) {
// Önce tam eşleşme ara
if (activeSites[browserLang]) {
return activeSites[browserLang];
}
// Eğer bulunamazsa İngilizce'yi varsayılan olarak döndür
if (activeSites['en']) {
return activeSites['en'];
}
// İngilizce de yoksa ilk aktif siteyi döndür
var firstKey = Object.keys(activeSites)[0];
return firstKey ? activeSites[firstKey] : null;
}
// Dil çevirileri
var translations = {
'en': {
version: 'English version is available',
switch: 'Switch to the English version?',
yes: 'Yes',
no: 'No'
},
'es': {
version: 'Versión en español disponible',
switch: '¿Cambiar a la versión en español?',
yes: 'Sí',
no: 'No'
},
'ru': {
version: 'Доступна русская версия',
switch: 'Переключиться на русскую версию?',
yes: 'Да',
no: 'Нет'
},
'zh': {
version: '中文版本可用',
switch: '切换到中文版本?',
yes: '是',
no: '否'
},
'ja': {
version: '日本語バージョンが利用可能',
switch: '日本語バージョンに切り替えますか?',
yes: 'はい',
no: 'いいえ'
},
};
// Popup içeriğini güncelle
function updateLanguageOffer(site) {
if (!site) return;
var langCode = site.language || 'en';
var trans = translations[langCode] || translations['en'];
var statementEl = document.getElementById('language-offer-statement');
var adviceEl = document.getElementById('language-offer-advice');
var linkEl = document.getElementById('language-offer-link');
var yesBtn = document.querySelector('#language-offer-link .btn__cap');
var noBtn = document.querySelector('#kapat-web .btn__cap');
if (statementEl) {
statementEl.textContent = trans.version;
}
if (adviceEl) {
adviceEl.textContent = trans.switch;
}
if (linkEl) {
linkEl.href = site.url;
}
if (yesBtn) yesBtn.textContent = trans.yes;
if (noBtn) noBtn.textContent = trans.no;
}
// Türkçe dil kodları
var turkishCodes = ['tr'];
// Kapat butonları için event listener
var closeWebBtn = document.querySelector('#kapat-web');
if (closeWebBtn) {
closeWebBtn.addEventListener('click', function() {
var languageInfoWeb = document.getElementById('language-info-web');
if (languageInfoWeb) {
languageInfoWeb.style.display = 'none';
}
var languageInfoMobile = document.getElementById('language-info-mobile');
if (languageInfoMobile) {
languageInfoMobile.style.display = 'none';
}
setCookie('dilBar', '0', 1); // 1 saat
});
}
// Dil popup'ını göster/gizle
function checkAndShowLanguageOffer() {
// Cookie kontrolü - eğer daha önce kapatıldıysa gösterme
var dilBarCookie = getCookie('dilBar');
if (dilBarCookie === '0') {
return;
}
// Tarayıcı dilini kontrol et
var browserLang = getBrowserLanguage();
// Eğer tarayıcı dili Türkçe değilse popup'ı göster
if (turkishCodes.indexOf(browserLang) === -1) {
// Tarayıcı diline göre eşleşen siteyi bul
var matchingSite = findMatchingSite(browserLang);
if (matchingSite) {
// Popup içeriğini güncelle
updateLanguageOffer(matchingSite);
var languageInfoWeb = document.getElementById('language-info-web');
if (languageInfoWeb) {
languageInfoWeb.style.display = 'block';
}
// Mobil için de kontrol et
var languageInfoMobile = document.getElementById('language-info-mobile');
if (languageInfoMobile) {
languageInfoMobile.style.display = 'block';
// Mobil için header'ı ayarla
var width = window.innerWidth;
if (width < 650) {
var element = document.querySelector(".td-header-template-wrap");
if (element) {
element.setAttribute("style", "top: 124px!important; position: relative;");
}
}
}
}
}
}
// Sayfa yüklendiğinde kontrol et
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', checkAndShowLanguageOffer);
} else {
checkAndShowLanguageOffer();
}
})();
Akdeniz Üniversitesi Makine Mühendisliği son sınıf öğrencisiyim. 2.5 senedir kripto paralarla ilgileniyorum ve yaklaşık 4.5 aydır kriptolarla ilgili yazılar yazıyorum.