Szerkesztő:Winston/kínai.js
Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.
- Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
- Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
- Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
- Opera: Nyomj Ctrl–F5-öt
/*
* Knávom, azaz a kínai nevek átírását váltogató mechanika.
*
* A [[MediaWiki:Common.js]] tölti be, a [[Sablon:Kínai]] párja.
*/
kinai_primary = 'pinyin';
function kinai_switch() {
var elements = document.getElementsByTagName('span');
for (var i = 0; i < elements.length; i++) {
if (elements[i].className != 'kinai-szoveg') {
continue;
}
var pinyin = '';
var magyaros = '';
var hanzi = '';
var egyeb = '';
var cimszo = 0;
var hidden = 0;
var children = elements[i].getElementsByTagName('span');
for (var j = 0; j < children.length; j++) {
switch (children[j].className) {
case 'pinyin':
pinyin = children[j].innerHTML;
break;
case 'magyaros':
magyaros = children[j].innerHTML;
break;
case 'hanzi':
hanzi = children[j].innerHTML;
break;
case 'egyeb':
egyeb = children[j].innerHTML;
break;
case 'cimszo':
cimszo = 1;
break;
case 'hidden':
hidden = 1;
break;
}
}
var str0 = '';
var str1 = '';
if (kinai_primary == 'pinyin') {
str0 = '<span class="magyaros">' + magyaros + '</span>';
if (hanzi || egyeb) {
if (hanzi) {
str1 = '(<span class="hanzi">' + hanzi + '</span>, <i>';
} else {
str1 = '<i>(';
}
str1 += '<span class="pinyin">' + pinyin + '</span>';
if (egyeb) {
str1 += ',</i> <span class="egyeb">' + egyeb + '</span>)';
} else {
str1 += '</i>)';
}
} else {
str1 = '<i>(<span class="pinyin">' + pinyin + '</span>)</i>';
}
} else {
str0 = '<span class="pinyin">' + pinyin + '</span>';
if (hanzi || egyeb) {
if (hanzi) {
str1 = '(<span class="hanzi">' + hanzi + '</span>, <i>';
} else {
str1 = '<i>(';
}
str1 += '<span class="magyaros">' + magyaros + '</span>';
if (egyeb) {
str1 += ',</i> <span class="egyeb">' + egyeb + '</span>)';
} else {
str1 += '</i>)';
}
} else {
str1 = '<i>(<span class="magyaros">' + magyaros + '</span>)</i>';
}
}
if (cimszo) {
str0 = '<span class="cimszo"><b>' + str0 + '</b></span>';
}
if (hidden) {
elements[i].innerHTML = str0 + '<span class="hidden"> ' + str1 + '</span>';
} else {
elements[i].innerHTML = str0 + ' ' + str1;
}
}
if (kinai_primary == 'pinyin') {
kinai_primary = 'magyaros';
document.cookie = 'kinai_primary=magyaros;path=/;expires=Tue, 19 Jan 2038 03:14:07 GMT';
} else {
kinai_primary = 'pinyin';
document.cookie = 'kinai_primary=pinyin;path=/;expires=Tue, 19 Jan 2038 03:14:07 GMT';
}
}
$(function () {
if (!document.getElementById || !document.getElementsByTagName) {
return;
}
/*
* Csak akkor rakjuk ki a fület, ha van a cikkben megjelölt kínai név.
*/
var kinai_inside = 0;
var spans = document.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].className == 'kinai-szoveg') {
kinai_inside = 1;
break;
}
}
if (!kinai_inside) {
return;
}
/*
* Odacsapjuk a fület.
*/
mw.util.addPortletLink('p-cactions', 'javascript:kinai_switch();', 'p./m.', 'ca-kinai-switch', 'Váltás pinyin és magyaros átírás közt');
/*
* Meg a kapcsolót a szócikk fölötti szöveghez is.
*/
var switchInMagyarosKinai = document.getElementById("kinai_switch");
switchInMagyarosKinai.style.display = "none";
var switchLink = document.createElement('a');
switchLink.setAttribute('href', 'javascript:kinai_switch();');
switchLink.innerHTML = switchInMagyarosKinai.innerHTML;
switchInMagyarosKinai.parentNode.insertBefore(switchLink,switchInMagyarosKinai);
/*
* Váltunk is rögtön, ha a user korábban magyarost választott. Persze ezt szebben is lehetne.
*/
if (document.cookie.indexOf('kinai_primary=magyaros') != -1) {
kinai_switch();
}
});