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); | |||
} | } | ||
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].classList.add("inline");*/ | |||
} | } | ||
var supported_languages = { | var supported_languages = { | ||
de: "german", | |||
en: "english", | |||
fr: "french", | |||
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( | |||
0, | |||
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( | |||
".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) ); | document.getElementById('mw-content-text').setAttribute("lang", navigator.language.substring(0, 2) ); | ||
} | |||
} else { | } 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'); | 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" | |||
); | ); | ||
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) { | |||
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'); | 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" | |||
); | ); | ||
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) { | |||
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'); | 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" | |||
); | ); | ||
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) { | |||
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"); | |||
} | |||
}); | |||
} | |||
| 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);
}
});