UNPKG

transcriptor-fonologico

Version:

Un simple transcriptor fonológico para la lengua española.

377 lines 14.8 kB
"use strict"; let v = 1; let y = 0; let s = 0; let n = 0; let l = 0; let t = 0; let z = 0; let themeValue = 2; let myInputW = 810; let myInputH = 240; let myArea = 0; let myRAE = document.getElementById("myRAE"); let myAFE = document.getElementById("myAFE"); let myAFI = document.getElementById("myAFI"); let myBox1 = document.getElementById("myBox1"); let myBox2 = document.getElementById("myBox2"); let myBox3 = document.getElementById("myBox3"); let myBox4 = document.getElementById("myBox4"); // BOTONERA SUPERIOR function myfunRAE() { if ( myRAE.checked == true ) { document.getElementById("myAFE").checked = false; document.getElementById("myAFI").checked = false; document.getElementById("Rules1").style.display = "inline"; document.getElementById("Rules2").style.display = "none"; document.getElementById("Rules3").style.display = "none"; document.getElementById("myYei").innerHTML = "ll:y"; document.getElementById("mySes").innerHTML = "z:s"; document.getElementById("myNei").innerHTML = "ñ:ni"; document.getElementById("myLel").innerHTML = "rr:l"; myCookie(); } else { document.getElementById("myRAE").checked = true; myfunRAE(); }; }; function myfunAFE() { if ( myAFE.checked == true ) { document.getElementById("myRAE").checked = false; document.getElementById("myAFI").checked = false; document.getElementById("Rules1").style.display = "none"; document.getElementById("Rules2").style.display = "inline"; document.getElementById("Rules3").style.display = "none"; document.getElementById("myYei").innerHTML = "h:y"; document.getElementById("mySes").innerHTML = "z:s"; document.getElementById("myNei").innerHTML = "ñ:ni"; document.getElementById("myLel").innerHTML = "vr:l"; myCookie(); } else { document.getElementById("myAFE").checked = true; myfunAFE(); }; }; function myfunAFI() { if ( myAFI.checked == true ) { document.getElementById("myRAE").checked = false; document.getElementById("myAFE").checked = false; document.getElementById("Rules1").style.display = "none"; document.getElementById("Rules2").style.display = "none"; document.getElementById("Rules3").style.display = "inline"; document.getElementById("myYei").innerHTML = "ʎ:ʝ"; document.getElementById("mySes").innerHTML = "θ:s"; document.getElementById("myNei").innerHTML = "ɲ:ni"; document.getElementById("myLel").innerHTML = "rɾ:l"; myCookie(); } else { document.getElementById("myAFI").checked = true; myfunAFI(); }; }; function myFunction1() { if ( myBox1.checked == true ) { document.getElementById("myYeismo").style.display = "inline"; }; if ( myBox1.checked == false ) { document.getElementById("myYeismo").style.display = "none"; }; myCookie(); }; function myFunction2() { if ( myBox2.checked == true ) { document.getElementById("mySeseo").style.display = "inline"; }; if ( myBox2.checked == false ) { document.getElementById("mySeseo").style.display = "none"; }; myCookie(); }; function myFunction3() { if ( myBox3.checked == true ) { document.getElementById("myNeismo").style.display = "inline"; }; if ( myBox3.checked == false ) { document.getElementById("myNeismo").style.display = "none"; }; myCookie(); }; function myFunction4() { if ( myBox4.checked == true ) { document.getElementById("myLeleo").style.display = "inline"; }; if ( myBox4.checked == false ) { document.getElementById("myLeleo").style.display = "none"; }; myCookie(); }; // BOTONERA INFERIOR function myChange() { if ( myRAE.checked == true ) { v = 1 }; if ( myAFE.checked == true ) { v = 2 }; if ( myAFI.checked == true ) { v = 3 }; if ( myBox1.checked == true ) { y = 1 } else { y = 0 }; if ( myBox2.checked == true ) { s = 1 } else { s = 0 }; if ( myBox3.checked == true ) { n = 1 } else { n = 0 }; if ( myBox4.checked == true ) { l = 1 } else { l = 0 }; let texto; texto = document.getElementById("myInput").value.toString(); if ( myBox4.checked == true ) { texto = texto.replace(/rrl/g,"l.l").replace(/rl/g,"l.l").replace(/RRL/g,"L.L").replace(/RL/g,"L.L") }; if ( myBox4.checked == true ) { texto = texto.replace(/lrr/g,"l.l").replace(/lr/g,"l.l").replace(/LRR/g,"L.L").replace(/LR/g,"L.L") }; texto = Transcribir(texto,v,y,s,n,l); document.getElementById("myResult").value = texto; document.getElementById("myInput").scrollTop = 0; document.getElementById("myResult").scrollTop = 0; }; function myClear() { document.getElementById("myInput").value = ""; document.getElementById("myResult").value = ""; }; function myAaTex() { let amatex = document.getElementById("myInput").value.toString(); document.getElementById("myInput").value = myMoTex(amatex); document.getElementById("myInput").scrollTop = 0; document.getElementById("myResult").scrollTop = 0; }; function myMoTex(abtexto) { abtexto = abtexto.toLowerCase(); // let abtexto = abtexto.replace(/\s+/g, " "); // let abtexto = abtexto.trim(); abtexto = abtexto.replace(/\n+/g, "êăõ"); abtexto = abtexto.replace(/\s+/g, " "); abtexto = abtexto.replace(/êăõ* /g, "\n\n"); abtexto = abtexto.replace(/êăõ/g, "\n\n"); abtexto = abtexto.trim(); // abtexto = abtexto.replace(/«/g,'"').replace(/»/g,'"').replace(/“/g,'"').replace(/”/g,'"').replace(/‘/g,"'").replace(/’/g,"'").replace(/`/g,"'").replace(/´/g,"'"); // abtexto = abtexto.replace(/[^a-z0-9 áéíóúüñ\n",:'\.\—\_\-?¿!¡;\(\)\[\]\{\}\…\+\=]/g,""); return abtexto; }; function mySave() { let texto1 = document.getElementById("myInput").value; let texto2 = document.getElementById("myResult").value; let texto3 = "=== TEXTO INICIAL ===" + "\n\n" + texto1 + "\n\n" + "=== TEXTO FONEMAS ===" + "\n\n" + texto2; let texto4 = texto3.replace(/\n/g, "\r\n"); let texto5 = texto4.replace(/\r+/g, "\r"); let factor = document.createElement('a'); factor.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(texto5)); factor.setAttribute("download", "texto.txt"); factor.style.display = "none"; document.body.appendChild(factor); factor.click(); document.body.removeChild(factor); }; function myCopy() { let texto1 = document.getElementById("myInput").value; let texto2 = document.getElementById("myResult").value; let texto3 = "=== TEXTO INICIAL ===" + "\n\n" + texto1 + "\n\n" + "=== TEXTO FONEMAS ===" + "\n\n" + texto2; let texto4 = texto3.replace(/\n/g, "\r\n"); let texto5 = texto4.replace(/\r+/g, "\r"); const textArea = document.createElement("textarea"); textArea.value = texto2; document.body.appendChild(textArea); textArea.select(); document.execCommand("copy"); document.body.removeChild(textArea); // window.alert("Copiado"); document.getElementById("myCopy").innerHTML = "Copiado"; setTimeout( function() { document.getElementById("myCopy").innerHTML = "Copiar"; }, 1800 ); }; function myBreak() { let texto; texto = document.getElementById("myResult").value.toString(); if ( myAFI.checked == true ) { texto = texto.replace(/t͡ʃ/g,"ch").replace(/x/g,"j").replace(/ʎ/g,"ll").replace(/ɲ/g,"ñ").replace(/r/g,"rr").replace(/ɾ/g,"r").replace(/ʝ/g,"y").replace(/θ/g,"z"); }; texto = Separator(texto); if ( myAFI.checked == true ) { texto = texto.replace(/ch/g,"t͡ʃ").replace(/j/g,"x").replace(/ll/g,"ʎ").replace(/ñ/g,"ɲ").replace(/rr/g,"æý").replace(/r/g,"ɾ").replace(/æý/g,"r").replace(/y/g,"ʝ").replace(/z/g,"θ"); }; document.getElementById("myResult").value = texto; document.getElementById("myInput").scrollTop = 0; document.getElementById("myResult").scrollTop = 0; }; // MODO OSCURO - CLARO function myTheme() { if ( themeValue == 2 ) { document.body.style.color = "#efefef"; document.body.style.backgroundColor = "#303030"; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.color = "#efefef"; document.getElementsByTagName("textarea")[i].style.backgroundColor = "#303030"; document.getElementsByTagName("textarea")[i].style.border = "1px solid #969696"; document.getElementsByTagName("textarea")[i].style.scrollbarColor = "#2b2b2b #363636"; i = i + 1; }; let u = 0; while ( u < 6 ) { document.getElementsByTagName("button")[u].style.color = "#efefef"; document.getElementsByTagName("button")[u].style.backgroundColor = "#303030"; document.getElementsByTagName("button")[u].style.border = "1px solid #969696"; u = u + 1; }; let a = 0; while ( a < 11 ) { document.getElementsByTagName("a")[a].style.color = "#c63636"; document.getElementsByTagName("a")[a].style.backgroundColor = "#303030"; a = a + 1; }; document.getElementById("myTxa").style.backgroundColor = "#303030"; document.getElementById("myTxa").style.color = "#c63636"; themeValue = 1; t = 2; myCookie(); } else { document.body.style.color = "#181818"; document.body.style.backgroundColor = "#ffffff"; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.color = "#181818"; document.getElementsByTagName("textarea")[i].style.backgroundColor = "#ffffff"; document.getElementsByTagName("textarea")[i].style.border = "1px solid #999999"; document.getElementsByTagName("textarea")[i].style.scrollbarColor = "#c9c9c9 #fbfbfb"; i = i + 1; }; let u = 0; while ( u < 6 ) { document.getElementsByTagName("button")[u].style.color = "#181818"; document.getElementsByTagName("button")[u].style.backgroundColor = "#ffffff"; document.getElementsByTagName("button")[u].style.border = "1px solid #999999"; u = u + 1; }; let a = 0; while ( a < 11 ) { document.getElementsByTagName("a")[a].style.color = "#0000ff"; document.getElementsByTagName("a")[a].style.backgroundColor = "#ffffff"; a = a + 1; }; document.getElementById("myTxa").style.backgroundColor = "#ffffff"; document.getElementById("myTxa").style.color = "#0000ff"; themeValue = 2; t = 1; myCookie(); }; }; // TEXTAREA function mySize() { myInputW = document.getElementById("myInput").offsetWidth; myInputH = document.getElementById("myInput").offsetHeight; myTextarea(); }; function myTextarea() { if ( myInputW < 810 ) { myInputW = 810; }; if ( myInputH < 240 ) { myInputH = 240; }; if ( myInputW > document.getElementById("main").offsetWidth ) { myInputW = document.getElementById("main").offsetWidth; }; if ( myInputH > screen.height ) { myInputH = screen.height; }; if ( myArea == 1 ) { myInputW = document.getElementById("main").offsetWidth; myInputH = screen.height; }; let i = 0; while ( i < 2 ) { document.getElementsByTagName("textarea")[i].style.width = myInputW + "px"; document.getElementsByTagName("textarea")[i].style.height = myInputH + "px"; i = i + 1; }; myCookie(); }; // COOKIES function myCookie() { if ( myRAE.checked == true ) { v = 1 }; if ( myAFE.checked == true ) { v = 2 }; if ( myAFI.checked == true ) { v = 3 }; if ( myBox1.checked == true ) { y = 1 } else { y = 0 }; if ( myBox2.checked == true ) { s = 1 } else { s = 0 }; if ( myBox3.checked == true ) { n = 1 } else { n = 0 }; if ( myBox4.checked == true ) { l = 1 } else { l = 0 }; document.cookie = "fonologica=" + v + "," + y + "," + s + "," + n + "," + l + "," + t + "," + myInputW + "," + myInputH + "," + myArea + ",~" + "; max-age=31415926 ; path=/"; }; // SETTING function mySetting() { if ( document.cookie.search(/fonologica=/) !== -1 ) { let settingDecode = decodeURIComponent(document.cookie); let settingValue = settingDecode.replace(/^.*(fonologica=)(.*)(,~).*/,"$2"); let settingLista = settingValue.trim().split(","); if ( settingLista[0] == 1 ) { document.getElementById("myRAE").checked = true ; myfunRAE(); }; if ( settingLista[0] == 2 ) { document.getElementById("myAFE").checked = true ; myfunAFE(); }; if ( settingLista[0] == 3 ) { document.getElementById("myAFI").checked = true ; myfunAFI(); }; if ( settingLista[1] == 1 ) { document.getElementById("myBox1").checked = true ; myFunction1(); }; if ( settingLista[2] == 1 ) { document.getElementById("myBox2").checked = true ; myFunction2(); }; if ( settingLista[3] == 1 ) { document.getElementById("myBox3").checked = true ; myFunction3(); }; if ( settingLista[4] == 1 ) { document.getElementById("myBox4").checked = true ; myFunction4(); }; if ( settingLista[5] == 1 || settingLista[5] == 2 ) { themeValue = settingLista[5] ; myTheme(); }; if ( settingLista[6] !== undefined ) { myInputW = settingLista[6]; }; if ( settingLista[7] !== undefined ) { myInputH = settingLista[7]; }; if ( settingLista[8] !== undefined ) { myArea = settingLista[8] ; myModoW(); }; myTextarea(); }; }; // ACCESO function myModoA() { z = 1; setTimeout(function(){z = 0;}, 15000); }; // TEXTAREA function myModoT() { if ( myArea == 0 ) { document.getElementById("myTxa").innerHTML = "MODO M"; myArea = 1; myCookie(); myTextarea(); } else { document.getElementById("myTxa").innerHTML = "MODO A"; myInputW = 810; myInputH = 240; myArea = 0; myCookie(); myTextarea(); }; }; function myModoW() { if ( myArea == 1 ) { document.getElementById("myTxa").innerHTML = "MODO M"; } else { document.getElementById("myTxa").innerHTML = "MODO A"; }; }; // RESPONSIVE function myResponsive() { let widthMain = document.getElementById("main").offsetWidth; // MARGENS VALUES let valueMargen = myCalculation( widthMain, 300, 700, 0.45, 1.20 ) ; document.getElementById("main").style.margin = 0 + "em" + " " + valueMargen + "em" ; // FONT-SIZE MAIN let valueMfs = myCalculation( widthMain, 200, 600, 16, 20 ) ; document.getElementById("main").style.fontSize = valueMfs + "px" ; // FONT-SIZE H1 & H2 let valueHfs = myCalculation( widthMain, 200, 600, 24, 36 ) ; let widthH1 = myCalculation( widthMain, 120, 230, 0.60, 1 ) ; if ( widthMain < 136 ) { document.getElementById("Title").innerHTML = "TRANSCR. FONOLÓGICA"; }; if ( widthMain >= 136 ) { document.getElementById("Title").innerHTML = "TRANSCRIPCIÓN FONOLÓGICA"; }; document.getElementsByTagName("h1")[0].style.fontSize = valueHfs * widthH1 + "px" ; let i = 0; while ( i < 5 ) { document.getElementsByTagName("h2")[i].style.fontSize = valueHfs * 0.70 + "px" ; i = i + 1; }; myTextarea(); }; // RESPONSIVE CALCULATION function myCalculation ( X, Xa, Xb, Ya, Yb ) { if ( Xa !== Xb ) { if ( ( Xa < Xb ) && ( X <= Xa ) ) { let Y = Number ( Ya ); return Y; }; if ( ( Xa < Xb ) && ( X >= Xb ) ) { let Y = Number ( Yb ); return Y; }; if ( ( Xa > Xb ) && ( X >= Xa ) ) { let Y = Number ( Ya ); return Y; }; if ( ( Xa > Xb ) && ( X <= Xb ) ) { let Y = Number ( Yb ); return Y; }; if ( ( X > Xa && X < Xb ) || ( X > Xb && X < Xa ) ) { let Y = Number ( [ Yb * ( X - Xa ) + Ya * ( Xb - X ) ] / [ ( Xb - Xa ) ] ); return Y; }; } else { return false; }; }; // INICIO mySetting(); myResponsive(); window.addEventListener( "resize", myResponsive );