Wechseln zu:Navigation, Suche
Wiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
Zeile 2: Zeile 2:
var sp_country_codes = document.querySelectorAll("span.sp-country-code");
var sp_country_codes = document.querySelectorAll("span.sp-country-code");
for (i = 0; i < sp_country_codes.length; i++) {
for (i = 0; i < sp_country_codes.length; i++) {
  sp_country_codes[i].innerHTML = navigator.language.substring(0, 2);
sp_country_codes[i].innerHTML = navigator.language.substring(0, 2);
}
}


var default_language = document.querySelectorAll(".language.de");
var default_language = document.querySelectorAll(".language.de");
for (i = 0; i < default_language.length; i++) {
for (i = 0; i < default_language.length; i++) {
  /*default_language[i].style.display = "inline";*/
/*default_language[i].style.display = "inline";*/
  /*default_language[i].classList.add("inline");*/
/*default_language[i].classList.add("inline");*/
}
}


var supported_languages = {
var supported_languages = {
  de: "german",
de: "german",
  en: "english",
en: "english",
  fr: "french",
fr: "french",
  // beliebig erweiterbar
pl: "polish",
};
// beliebig erweiterbar
};


// sprache des browsers
// sprache des browsers
var browser_langues_code = navigator.language;
var browser_langues_code = navigator.language;
if (browser_langues_code.indexOf("-") != -1) {
if (browser_langues_code.indexOf("-") != -1) {
  var browser_langues_code = browser_langues_code.substring(
var browser_langues_code = browser_langues_code.substring(
    0,
0,
    browser_langues_code.indexOf("-")
browser_langues_code.indexOf("-")
  );
);
}
}




Zeile 31: Zeile 32:
console.log(supported_languages[browser_langues_code]);
console.log(supported_languages[browser_langues_code]);
if (supported_languages[browser_langues_code] != undefined) {
if (supported_languages[browser_langues_code] != undefined) {
  var default_language = document.querySelectorAll(
var default_language = document.querySelectorAll(
    ".language." + supported_languages[browser_langues_code]
".language." + supported_languages[browser_langues_code]
  );
);
  for (i = 0; i < default_language.length; i++) {
for (i = 0; i < default_language.length; i++) {
    /* default_language[i].style.display = "inline"; */
/* default_language[i].style.display = "inline"; */
    default_language[i].classList.add("inline");  
default_language[i].classList.add("inline");  
    document.documentElement.setAttribute("lang", navigator.language.substring(0, 2) );
document.documentElement.setAttribute("lang", navigator.language.substring(0, 2) );
document.getElementById('mw-content-text').setAttribute("lang", navigator.language.substring(0, 2) );
document.getElementById('mw-content-text').setAttribute("lang", navigator.language.substring(0, 2) );
  }
}
} else {
} else {
  var default_language = document.querySelectorAll(".language.english");
var default_language = document.querySelectorAll(".language.english");
  for (i = 0; i < default_language.length; i++) {
for (i = 0; i < default_language.length; i++) {
    /* default_language[i].style.display = "inline"; */
/* default_language[i].style.display = "inline"; */
    default_language[i].classList.add("inline");  
default_language[i].classList.add("inline");  
    document.documentElement.setAttribute("lang", 'en');
document.documentElement.setAttribute("lang", 'en');
document.getElementById('mw-content-text').setAttribute("lang", 'en');
document.getElementById('mw-content-text').setAttribute("lang", 'en');
  }
}
}
}


// hier die funktion der buttons
// hier die funktion der buttons
Zeile 54: Zeile 55:
// deutsch button
// deutsch button
var language_toggle_german = document.querySelectorAll(
var language_toggle_german = document.querySelectorAll(
  ".language-toggle-german"
".language-toggle-german"
);
);
for (i = 0; i < language_toggle_german.length; i++) {
for (i = 0; i < language_toggle_german.length; i++) {
  language_toggle_german[i].addEventListener("click", function (event) {
language_toggle_german[i].addEventListener("click", function (event) {
    var language_elements = document.querySelectorAll(".language");
var language_elements = document.querySelectorAll(".language");
    for (i = 0; i < language_elements.length; i++) {
for (i = 0; i < language_elements.length; i++) {
      language_elements[i].classList.remove("inline");
language_elements[i].classList.remove("inline");
      language_elements[i].classList.add("none");
language_elements[i].classList.add("toggle-inaktiv");
    }
}
    var language_german = document.querySelectorAll(".language.german");
var language_german = document.querySelectorAll(".language.german");
    for (i = 0; i < language_german.length; i++) {
for (i = 0; i < language_german.length; i++) {
      language_german[i].classList.remove("none");
language_german[i].classList.remove("toggle-inaktiv");
      language_german[i].classList.add("inline");
language_german[i].classList.add("inline");
      document.documentElement.setAttribute("lang", 'de');
document.documentElement.setAttribute("lang", 'de');
document.getElementById('mw-content-text').setAttribute("lang", 'de');
document.getElementById('mw-content-text').setAttribute("lang", 'de');
    }
}
  });
});
}
}
 
// englisch button
// englisch button
var language_toggle_english = document.querySelectorAll(
var language_toggle_english = document.querySelectorAll(
  ".language-toggle-english"
".language-toggle-english"
);
);
for (i = 0; i < language_toggle_english.length; i++) {
for (i = 0; i < language_toggle_english.length; i++) {
  language_toggle_english[i].addEventListener("click", function (event) {
language_toggle_english[i].addEventListener("click", function (event) {
    var language_elements = document.querySelectorAll(".language");
var language_elements = document.querySelectorAll(".language");
    for (i = 0; i < language_elements.length; i++) {
for (i = 0; i < language_elements.length; i++) {
      language_elements[i].classList.remove("inline");
language_elements[i].classList.remove("inline");
      language_elements[i].classList.add("none");
language_elements[i].classList.add("toggle-inaktiv");
    }
}
    var language_english = document.querySelectorAll(".language.english");
var language_english = document.querySelectorAll(".language.english");
    for (i = 0; i < language_english.length; i++) {
for (i = 0; i < language_english.length; i++) {
      language_english[i].classList.remove("none");
language_english[i].classList.remove("toggle-inaktiv");
      language_english[i].classList.add("inline");
language_english[i].classList.add("inline");
      document.documentElement.setAttribute("lang", 'en');
document.documentElement.setAttribute("lang", 'en');
document.getElementById('mw-content-text').setAttribute("lang", 'en');
document.getElementById('mw-content-text').setAttribute("lang", 'en');
    }
}
  });
});
}
}


// französisch button
// französisch button
var language_toggle_french = document.querySelectorAll(
var language_toggle_french = document.querySelectorAll(
  ".language-toggle-french"
".language-toggle-french"
);
);
for (i = 0; i < language_toggle_french.length; i++) {
for (i = 0; i < language_toggle_french.length; i++) {
  language_toggle_french[i].addEventListener("click", function (event) {
language_toggle_french[i].addEventListener("click", function (event) {
    var language_elements = document.querySelectorAll(".language");
var language_elements = document.querySelectorAll(".language");
    for (i = 0; i < language_elements.length; i++) {
for (i = 0; i < language_elements.length; i++) {
      language_elements[i].classList.remove("inline");
language_elements[i].classList.remove("inline");
      language_elements[i].classList.add("none");
language_elements[i].classList.add("toggle-inaktiv");
    }
}
    var language_french = document.querySelectorAll(".language.french");
var language_french = document.querySelectorAll(".language.french");
    for (i = 0; i < language_french.length; i++) {
for (i = 0; i < language_french.length; i++) {
      language_french[i].classList.remove("none");
language_french[i].classList.remove("toggle-inaktiv");
      language_french[i].classList.add("inline");
language_french[i].classList.add("inline");
    }
}
  });
});
}
}
 
// polnisch button
var language_toggle_polish = document.querySelectorAll(
".language-toggle-polish"
);
for (i = 0; i < language_toggle_polish.length; i++) {
language_toggle_polish[i].addEventListener("click", function (event) {
var language_elements = document.querySelectorAll(".language");
for (i = 0; i < language_elements.length; i++) {
language_elements[i].classList.remove("inline");
language_elements[i].classList.add("toggle-inaktiv");
}
var language_polish = document.querySelectorAll(".language.polish");
for (i = 0; i < language_polish.length; i++) {
language_polish[i].classList.remove("toggle-inaktiv");
language_polish[i].classList.add("inline");
}
});
}




Zeile 138: Zeile 159:
         }
         }
     });
     });
});
// Copy to Clipboard
$(function () {
    // Nur, wenn jQuery geladen ist
    $('.mw-copy-to-clipboard').on('click', function (e) {
        const $btn = $(this);
        // 1️⃣ Text holen – entweder aus data‑attribut oder aus dem Button‑Text selbst
        const textToCopy = $btn.data('clipboard-text') || $btn.text();
        // 2️⃣ Clipboard‑API benutzen, falls verfügbar
        if (navigator.clipboard) {
            navigator.clipboard.writeText(textToCopy)
                .then(() => showCopied($btn))
                .catch(err => console.warn('Clipboard API not allowed', err));
        } else {
            // 3️⃣ Fallback für alte Browser: execCommand
            const textarea = document.createElement('textarea');
            textarea.style.position = 'fixed';  // verhindert Scroll‑Schiebe‑Effekt
            textarea.style.opacity = 0;        // unsichtbar
            textarea.value = textToCopy;
            document.body.appendChild(textarea);
            textarea.select();
            try {
                document.execCommand('copy');
                showCopied($btn);
            } catch (err) {
                console.warn('Fallback copy failed', err);
            }
            document.body.removeChild(textarea);
        }
    });
    // Hilfsfunktion für kurzes „Copied!“ Tooltip
    function showCopied($el) {
        const originalTitle = $el.attr('title') || '';
        $el.attr('title', 'Copied!').trigger('mouseover');
        setTimeout(() => {
            $el.attr('title', originalTitle).trigger('mouseout');
        }, 1200);
    }
});
});

Aktuelle Version vom 14. April 2026, 08:56 Uhr

/* Das folgende JavaScript wird für alle Benutzer geladen. */
var sp_country_codes = document.querySelectorAll("span.sp-country-code");
for (i = 0; i < sp_country_codes.length; i++) {
	sp_country_codes[i].innerHTML = navigator.language.substring(0, 2);
	}

var default_language = document.querySelectorAll(".language.de");
for (i = 0; i < default_language.length; i++) {
	/*default_language[i].style.display = "inline";*/
	/*default_language[i].classList.add("inline");*/
	}

var supported_languages = {
	de: "german",
	en: "english",
	fr: "french",
	pl: "polish",
	// beliebig erweiterbar
	};

// sprache des browsers
var browser_langues_code = navigator.language;
if (browser_langues_code.indexOf("-") != -1) {
	var browser_langues_code = browser_langues_code.substring(
		0,
		browser_langues_code.indexOf("-")
	);
	}


// wird die sprache supportet auswählen
console.log(supported_languages[browser_langues_code]);
if (supported_languages[browser_langues_code] != undefined) {
	var default_language = document.querySelectorAll(
		".language." + supported_languages[browser_langues_code]
	);
	for (i = 0; i < default_language.length; i++) {
		/* default_language[i].style.display = "inline"; */
		 default_language[i].classList.add("inline"); 
		document.documentElement.setAttribute("lang", navigator.language.substring(0, 2) );
		document.getElementById('mw-content-text').setAttribute("lang", navigator.language.substring(0, 2) );
		}
	} else {
	var default_language = document.querySelectorAll(".language.english");
	for (i = 0; i < default_language.length; i++) {
		/* default_language[i].style.display = "inline"; */
		default_language[i].classList.add("inline"); 
		document.documentElement.setAttribute("lang", 'en');
		document.getElementById('mw-content-text').setAttribute("lang", 'en');
		}
	}

// hier die funktion der buttons

// deutsch button
var language_toggle_german = document.querySelectorAll(
	".language-toggle-german"
	);
for (i = 0; i < language_toggle_german.length; i++) {
	language_toggle_german[i].addEventListener("click", function (event) {
		var language_elements = document.querySelectorAll(".language");
		for (i = 0; i < language_elements.length; i++) {
			language_elements[i].classList.remove("inline");
			language_elements[i].classList.add("toggle-inaktiv");
		}
		var language_german = document.querySelectorAll(".language.german");
		for (i = 0; i < language_german.length; i++) {
			language_german[i].classList.remove("toggle-inaktiv");
			language_german[i].classList.add("inline");
			document.documentElement.setAttribute("lang", 'de');
			document.getElementById('mw-content-text').setAttribute("lang", 'de');
			}
		});
	}

// englisch button
var language_toggle_english = document.querySelectorAll(
	".language-toggle-english"
	);
for (i = 0; i < language_toggle_english.length; i++) {
	language_toggle_english[i].addEventListener("click", function (event) {
		var language_elements = document.querySelectorAll(".language");
		for (i = 0; i < language_elements.length; i++) {
			language_elements[i].classList.remove("inline");
			language_elements[i].classList.add("toggle-inaktiv");
			}
		var language_english = document.querySelectorAll(".language.english");
		for (i = 0; i < language_english.length; i++) {
			language_english[i].classList.remove("toggle-inaktiv");
			language_english[i].classList.add("inline");
			document.documentElement.setAttribute("lang", 'en');
			document.getElementById('mw-content-text').setAttribute("lang", 'en');
			}
		});
	}

// französisch button
var language_toggle_french = document.querySelectorAll(
	".language-toggle-french"
	);
for (i = 0; i < language_toggle_french.length; i++) {
	language_toggle_french[i].addEventListener("click", function (event) {
		var language_elements = document.querySelectorAll(".language");
		for (i = 0; i < language_elements.length; i++) {
			language_elements[i].classList.remove("inline");
			language_elements[i].classList.add("toggle-inaktiv");
		}
		var language_french = document.querySelectorAll(".language.french");
		for (i = 0; i < language_french.length; i++) {
			language_french[i].classList.remove("toggle-inaktiv");
			language_french[i].classList.add("inline");
		}
	});
	}

// polnisch button
var language_toggle_polish = document.querySelectorAll(
	".language-toggle-polish"
	);
for (i = 0; i < language_toggle_polish.length; i++) {
	language_toggle_polish[i].addEventListener("click", function (event) {
		var language_elements = document.querySelectorAll(".language");
		for (i = 0; i < language_elements.length; i++) {
			language_elements[i].classList.remove("inline");
			language_elements[i].classList.add("toggle-inaktiv");
		}
		var language_polish = document.querySelectorAll(".language.polish");
		for (i = 0; i < language_polish.length; i++) {
			language_polish[i].classList.remove("toggle-inaktiv");
			language_polish[i].classList.add("inline");
		}
	});
	}


// Ein- und ausblenden von Beschriftungs-div-Tags

/* Schaltet zwischen sp-toggle-show und sp-toggle-hide Paaren um */
mw.hook('wikipage.content').add(function($content) {
    // 1. Klick auf die Show-Box
    $content.find('.sp-toggle-show').on('click', function() {
        var $showBox = $(this);
        var $hideBox = $showBox.next('.sp-toggle-hide');
        
        if ($hideBox.length) {
            $showBox.addClass('none');
            $hideBox.removeClass('none');
        }
    });

    // 2. Klick auf die Hide-Box
    $content.find('.sp-toggle-hide').on('click', function() {
        var $hideBox = $(this);
        var $showBox = $hideBox.prev('.sp-toggle-show');
        
        if ($showBox.length) {
            $hideBox.addClass('none');
            $showBox.removeClass('none');
        }
    });
});



// Copy to Clipboard

$(function () {
    // Nur, wenn jQuery geladen ist
    $('.mw-copy-to-clipboard').on('click', function (e) {
        const $btn = $(this);
        // 1️⃣ Text holen – entweder aus data‑attribut oder aus dem Button‑Text selbst
        const textToCopy = $btn.data('clipboard-text') || $btn.text();

        // 2️⃣ Clipboard‑API benutzen, falls verfügbar
        if (navigator.clipboard) {
            navigator.clipboard.writeText(textToCopy)
                .then(() => showCopied($btn))
                .catch(err => console.warn('Clipboard API not allowed', err));
        } else {
            // 3️⃣ Fallback für alte Browser: execCommand
            const textarea = document.createElement('textarea');
            textarea.style.position = 'fixed';   // verhindert Scroll‑Schiebe‑Effekt
            textarea.style.opacity = 0;         // unsichtbar
            textarea.value = textToCopy;
            document.body.appendChild(textarea);
            textarea.select();
            try {
                document.execCommand('copy');
                showCopied($btn);
            } catch (err) {
                console.warn('Fallback copy failed', err);
            }
            document.body.removeChild(textarea);
        }
    });

    // Hilfsfunktion für kurzes „Copied!“ Tooltip
    function showCopied($el) {
        const originalTitle = $el.attr('title') || '';
        $el.attr('title', 'Copied!').trigger('mouseover');
        setTimeout(() => {
            $el.attr('title', originalTitle).trigger('mouseout');
        }, 1200);
    }
});