Citat:
jablan: Da. To je već nešto drugo. Tebi ne treba detekcija rasporeda, već da vidiš da li je string koji si dobila ćirilični ili latinični. (Pored toga što je "raspored tastature" nešto potpuno proizvoljno, zamisli sledeću situaciju: korisniku je aktivan latinični raspored, ali u klipbordu ima ćirilični tekst, i taj tekst pejstuje u tvoje polje. Da li je tekst ćirilični ili latinični?)
Za detekciju pisma u stringu, koristi predefinisane setove ćiriličnog i latiničnog alfabeta, i odredi koji procenat karaktera iz unetog stringa pripada jednom, a koliko drugom. Trebalo bi da bude prilično jednostavno (pitaj na PHP podforumu ako se ne snađeš).
Stvari počinju da bivaju interesantne tek kad treba da prepoznaš
jezik kojim je neki string napisan, ali nadam se da ti to ne treba.
Cilj: na osnovu unetog u polje naci i vratiti odgovarajuca preklapanja iz MySQL baze, tacnije jedne jedine tabele u kojoj je koriscena srpska latinica. To moze i na ovaj nacin:
Code:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>konvertovanje u srpsku latinicu</title>
<script type="text/javascript">
<!--
function ulazKeyUp()
{
var ulaz = document.getElementById('ulaz');
var izlaz = document.getElementById('izlaz');
izlaz.value = ConvertToLatin(ulaz.value);
}
function ConvertToLatin(ulaz)
{
/* primer obrade malih slova*/
var c = '';
var slovo = '';
var i;
for (i=0; i<ulaz.length; i++)
{
slovo = ulaz.substr(i, 1);
switch (slovo)
{
case "a": c += "a"; break;
case "b": c += "b"; break;
case "v": c += "v"; break;
case "g": c += "g"; break;
case "d": c += "d"; break;
case "đ": c += "đ"; break;
case "e": c += "e"; break;
case "ž": c += "ž"; break;
case "z": c += "z"; break;
case "i": c += "i"; break;
case "j": c += "j"; break;
case "k": c += "k"; break;
case "l": c += "l"; break;
case "lj": c += "lj"; break;
case "m": c += "m"; break;
case "n": c += "n"; break;
case "nj": c += "nj"; break;
case "o": c += "o"; break;
case "p": c += "p"; break;
case "r": c += "r"; break;
case "s": c += "s"; break;
case "t": c += "t"; break;
case "u": c += "u"; break;
case "f": c += "f"; break;
case "h": c += "h"; break;
case "c": c += "c"; break;
case "č": c += "č"; break;
case "ć": c += "ć"; break;
case "dž": c += "dž"; break;
case "š": c += "š"; break;
default:
if(slovo == "d")
{
if(ulaz.substr((i+1),1) == "j")
{
i++;
slovo = "đ";
}
if(ulaz.substr((i+1),1) == "z")
{
i++;
slovo = "dž";
}
}
c += slovo;
break;
}
}
return c;
}
// -->
</script>
</head>
<body>
Primer korišćenja funkcije:
<input id="ulaz" onkeyup="ulazKeyUp()" type="text" value="">
<input id="izlaz" type="text">
<br>(Kucajte nešto ćirilično ili latinično u prvi textbox.)
</body></html>
Btw. ovo je preradjena verzija ovoga:
latinica->cirilica (S obzirom da je u pitanju jednostavan primer koji se moze resiti na vise nacina i da sam ga znatno izmenila, da li treba navoditi izvor, tj. prvobitnog autora?)
Zamisao je bila da se na jednostavan nacin identifikuje da li je upotrebljena cirilica, srpska latinica ili engleska latinica uz zaobilazenje obrade svakog slova, uz mogucnost prevodjenja, po potrebi, u latinicu ili cirilicu. Trenutno mi treba po principu prevesti "bilo sta" u srpsku latinicu.
Citat:
tuxserbia: Pa nije valjda da praviš novi ES ???
PS
Kucam ćirilicom, šta se čita, pitajte Vuka ;-)
daleko sam ja od toga.
P.S. html fajl je u prilogu jer ni
code nije postedjen prevodjenja u latinicu.
ER