МедиаУики:Gadget-translit.js

Уикисөздік жобасынан

Ескерту: жариялаудан кейін өзгертістерді көру үшін браузеріңіздің кэшін тазарту керек болуы мүмкін.

  • Firefox / Safari: Reload басқанда Shift ұстап тұрыңыз немесе Ctrl-F5 не Ctrl-R басыңыз (Mac-та ⌘-R)
  • Google Chrome: Ctrl-Shift-R басыңыз (Mac-та ⌘-Shift-R)
  • Internet Explorer / Edge: Жаңарту дегенді басқанда Ctrl ұстап тұрыңыз немесе Ctrl-F5 басыңыз
  • Opera: Ctrl-F5 басыңыз.
/**
 * Translit(eration) on-the-fly Code 
 * @author: [[User:GaiJin]]
 * @version: 
 */
/*

=== Init variables ===
*/
  //0 - english, 1 - cyrillic (standard)
 var layout = 1;

 var output_array = ("А_Ә_Б_Ц_Ч_Д_Е_Ф_Г_Ғ_Ы_І_И_Ж_К_Қ_Л_М_Н_Ң_О_Ө_П_Р_С_Ш_Т_Ұ_Ү_В_У_Х_Й_З_Э_Ю_Я_а_ә_б_ц_ч_цһ_д_е_ф_г_ғ_гһ_һ_ы_і_и_ж_к_л_м_н_ң_нг_о_ө_п_қ_р_с_ш_т_ұ_ү_в_у_х_й_з_э_ю_я_Ч_Ғ_Ң_Ш_Ю_Я_Ә_Э_Ы_Ө_Ү_ә_э_ы_ө_ү_ь_ь_ъ_ъ_щ").split("_");
 var input_array = ("A_А'_B_C_Цh_D_E_F_G_Гh_І'_I_І\"_J_K_Q_L_M_N_Нg_O_О'_P_R_S_Сh_T_U_Ұ'_V_W_X_Y_Z_Е'_Йu_Йa_a_а'_b_c_цh_цH_d_e_f_g_гh_гH_h_і'_i_і\"_j_k_l_m_n_нg_нG_o_о'_p_q_r_s_сh_t_u_ұ'_v_w_x_y_z_е'_йu_йa_ЦH_ГH_НG_СH_ЙU_ЙA_А`_Е`_І`_О`_Ұ`_а`_е`_і`_о`_ұ`_'_`_ь'_ь`_!").split("_");

// var toolbar = document.getElementById("toolbar"); //begin IF
//if ( toolbar ) 
//{ 

/*

=== Help stuff ===
*/
function openhelp()
{
   var popup=window.open('','translithelp','height=250,width=750');
popup.document.write("<html><head><title>Транслит Көмегі</title></head><body>");
   popup.document.write("<style>.charcorr {font-size: 13pt; font-family: Arial; letter-spacing: 0.01em; font-weight: normal; color: blue;}</style>");
   popup.document.write("<font=sans-serif> Бұл транслит құралының көмек беті боп саналады.<br>Транслит арқылы қазақ пернетақтасы қол астыңызда болмаса да қазақша жаза аласыз. Бұл үшін:<br><br>");
   popup.document.write("<b>1</b>.[Ctrl]+[Alt] пернелерін бірге баса отырып, енгізу әліппесін КИРИЛ мен ЛАТЫН арасында ауыстырып отырыңыз;<br>");
   popup.document.write("<b>2</b>.Кирил әрібін теремін дегенде, келесі сәйкестік кестесіне ере отырып латын әріптерін кирилге аударып отырыңыз:</font><br>");
   popup.document.write("<table class=charcorr border=0 cellspacing=1 cellpadding=2 valign=middle width=95%>");
   popup.document.write("<tr valign=top align=center><td>a</td><td>ә</td><td>б</td><td>ц</td><td>ч</td><td>д</td><td>е</td><td>ф</td><td>г</td><td>ғ</td><td>һ</td><td>х</td><td>ы</td><td>i</td><td>ж</td><td>к</td><td>қ</td><td>л</td><td>м</td><td>н</td><td>ң</td><td>о</td><td>ө</td><td>п</td><td>р</td><td>с</td><td>ш</td><td>т</td><td>ұ</td><td>ү</td><td>в</td><td>у</td><td>й</td><td>з</td><td>э</td><td>и</td><td>ю</td><td>я</td><td>ь,ъ,щ</td>");
   popup.document.write("<tr valign=bottom align=center><td>a</td><td><u>a\'</u></td><td>b</td><td>c</td><td><u>ch</u></td><td>d</td><td>e</td><td>f</td><td>g</td><td><u>gh</u></td><td>h</td><td>x</td><td><u>i\'</u></td><td>i</td><td>j</td><td>k</td><td>q</td><td>l</td><td>m</td><td>n</td><td><u>ng</u></td><td>o</td><td><u>o\'</u></td><td>p</td><td>r</td><td>s</td><td><u>sh</u></td><td>t</td><td>u</td><td><u>u\'</u></td><td>v</td><td>w</td><td>y</td><td>z</td><td><u>e\'</u></td><td><u>i\"</u></td><td><u>yu</u></td><td><u>ya</u></td><td>','',!</td></table>");
popup.document.write("</body></html>");

   popup.document.close();

}
/*

=== changeLayout() ===
*/
 function changeLayout(translit)
 {
  var textbox = document.getElementById('wpTextbox1');
  if (!textbox) return false;

        if (layout == 1) {
//                var translit = document.getElementById('translit');
                translit.value = "Ctrl+Alt Lat";
                //translit.style.backgroundColor="#EEEEEE";
                translit.style.borderColor="#45AA50";
                translit.style.fontWeight="normal";
                document.editform.wpTextbox1.focus();
                return layout = 0;
        } else if (layout == 0) {
//                var translit = document.getElementById('translit');
                translit.value = "Ctrl+Alt Cyr";
                //translit.style.backgroundColor="#FFFFE0";
                translit.style.borderColor="#FFA500";
                translit.style.fontWeight="bold"; 
                document.editform.wpTextbox1.focus();
                return layout = 1;
        }
 }
/*

=== add_button() ===
*/
function add_button()
 {
 var toolbar = document.getElementById("toolbar"); 
 if (!toolbar) return false;

 var editform = document.getElementById('editform');
 if (!editform) return false;
 
 var textbox = document.getElementById('wpTextbox1');
 if (!textbox) return false;
 // Don't generate buttons for browsers which don't fully
 // support it. 
 if (!document.selection && textbox.selectionStart == null)
   return false;

  var translit = document.createElement("input");
  translit.width = 92;
  translit.height = 22;
  translit.className = 'translit';
  translit.id = 'translit';
  translit.type = 'button'; 
  translit.alt = 'Теру үшін Ctrl+Alt пернелерін қосып басыңыз';
  translit.title = 'Теру үшін Ctrl+Alt пернелерін қосып басыңыз';
  translit.style.cursor = "pointer";
  translit.onclick = function() {
           changeLayout(translit); 
           return false; 
  };

  
  var image = document.createElement("img");
  image.width = 23;
  image.height = 22;
  image.className = 'help';
  image.id = 'help';
  image.src = "//upload.wikimedia.org/wikipedia/kk/9/9a/Suraq.gif";
  image.border = 0;
  image.alt = 'Қазақша теру анықтамасы';
  image.title = 'Қазақша теру анықтамасы';
  image.style.cursor = "pointer";
  image.onclick = function() {
           openhelp(); 
           return false; 
  };

  editform.parentNode.insertBefore(image, editform);
  editform.parentNode.insertBefore(translit, editform);
  changeLayout(translit);


 document.write('<style type="text\/css">.translit {color:black; font-size:0.90em; font-variant:small-caps; text-decoration:none; border:thin outset; padding: 0 0.2em 0 0; float:right;} .help {float:right;}<\/style>');
 }

/*

=== Convert(text) ===
*/
 function Convert(text)
 {
  var i,text1;
  for(i=0;i<output_array.length;i++)
        if(text==input_array[i]) return output_array[i];
  text1=text.substr(1,1);
  for(i=0;i<output_array.length;i++)
        if(text1==input_array[i]) return text.substr(0,1)+output_array[i];
  return text;
 }

/*

=== ConvertInRealTime() ===
*/

 document.onkeypress= function ConvertInRealTime()
 {
  if (document.activeElement!=document.editform.wpTextbox1) return;
  if (!layout) return;

  //the entered character
  var code = event.keyCode;
  txt=String.fromCharCode(code); 
  //make selection
  cursor_pos_selection = document.selection.createRange();
  //delete something selected before
  cursor_pos_selection.text="";
  //get the previous character
  cursor_pos_selection.moveStart("character",-1);
  pretxt = cursor_pos_selection.text;
  if (pretxt.length>1) {pretxt="";}
  event.keyCode = 0;

  result=Convert(pretxt+txt);
  //delete the previous symbol if it is exists (if the entered symbol is not the first one)
  if (pretxt!="") { cursor_pos_selection.select(); cursor_pos_selection.collapse();}
  with(document.selection.createRange()) {text = result; collapse(); select()}
  return;
 }

/*

=== AkeyIsDown() ===
*/
 document.onkeydown = function AkeyIsDown()
 {
    if (event.ctrlKey && event.altKey) 
    {
        changeLayout(translit);
        event.returnValue=false;
    }
 }

$(add_button);

//}
// end IF