Szerkesztő:Chery/kínai.js

A Wikipédiából, a szabad enciklopédiából

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
kinai_primary = 'magyaros';

function kinai_switch() {
  $('.kinai-szoveg').each(function kinai_switch_foreach() {
    
    var pinyin = '';
    var magyaros = '';
    var hanzi = '';
    var egyeb = '';
    var cimszo = 0;
    var hidden = 0;
    
    $('span', this).each(function kinai_switch_inner_foreach() {
      
      switch ($(this).attr('class')) {
        case 'pinyin':
          pinyin = '<span class="pinyin">' + $(this).html() + '</span>';
          break;
        case 'magyaros':
          magyaros = '<span class="magyaros">' + $(this).html() + '</span>';
          break;
        case 'hanzi':
          hanzi = '<span class="hanzi">' + $(this).html() + '</span>';
          break;
        case 'egyeb':
          egyeb = '<span class="egyeb">' + $(this).html() + '</span>';
          break;
        case 'cimszo':
          cimszo = 1;
          break;
        case 'hidden':
          hidden = 1;
          break;
      }
    })
    
    var str0 = (kinai_primary == 'pinyin') ? magyaros : pinyin;
    var str1 = (kinai_primary == 'pinyin') ? pinyin : magyaros;
    
    if (cimszo) {
      str0 = '<span class="cimszo"><b>' + str0 + '</b></span>';
    }
    
    if (!hidden) {
      str0 += ' ';
      str0 += (hanzi) ? '(' + hanzi + ', <i>' : '<i>(';
      str0 += str1;
      str0 += (egyeb) ? ',</i> ' + egyeb + ')' : ')</i>';
    } else {
      if (hanzi) {
        str0 += ' (' + hanzi + ')';
      }
      str0 += '<span class="hidden">' + str1 + '</span>';
    }
    
    $(this).html(str0);
  });
  
  if (kinai_primary == 'pinyin') {
    kinai_primary = 'magyaros';
    localStorage.setItem('kinai-primary', 'magyaros');
  } else {
    kinai_primary = 'pinyin';
    localStorage.setItem('kinai-primary', 'pinyin');
  }
}


// Betöltődéskor indítjuk

$(function magyarosKinaiInit() {

  // Csak akkor rakjuk ki a fület, ha van a cikkben megjelölt kínai név.
  if ( $('.kinai-szoveg').length === 0 ){
    return;
  }

  // Odacsapjuk a fület.
  var portletLink = mw.util.addPortletLink('p-cactions', '#', 'p./m.', 'ca-kinai-switch', 'Váltás pinyin és magyaros átírás közt');
  $( portletLink ).click( function ( e ) {
    e.preventDefault();
    kinai_switch();
  });

  //Meg a kapcsolót a szócikk fölötti szöveghez is.
  $("<a href='#'></a>")
    .click( function ( e ) {
      e.preventDefault();
      kinai_switch();
    })
    .html($('#kinai_switch').clone())
    .insertBefore($('#kinai_switch').hide());
  
  // Váltunk is rögtön, hogy kezdetben is a szkript szerint jelenjen meg. Persze ezt szebben is lehetne.
  kinai_primary = (localStorage.getItem('kinai-primary') == 'pinyin') ? 'magyaros' : 'pinyin';
  kinai_switch();
});