Kôd:
/**
* Klasa za prevod teksta sa cirilice na latinicu.
* @author Jelena Kutlaca [mailto:jelena.kutlaca@activez.net]
*/
var sadrzaj;
var prevod;
function setSadrzaj(sadrzaj){
// sadrzaj=sadrzaj;
}
function getPrevod(){
return prevod;
}
function cir2lat(Source) {
var retValue = Source;
latinica = new Array('lj','nj','dž','Lj','Nj','Dž','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š');
cirilica = new Array ('љ','њ','џ','Љ','Њ','Џ','а','б','в','г','д','ђ','е','ж','з','и','ј','к','л','м','н','о','п','р','с','т','ћ','у','ф','х','ц','ч','ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш');
for(i=0; i<latinica.length; i++){
p = new RegExp(cirilica[i], "g");
retValue = retValue.replace(p, latinica[i]);
}
return retValue;
}
function cirSmall2Big(Source) {
var retValue = Source;
cirilica_big = new Array('Љ','Њ','Џ','Љ','Њ','Џ','Џ','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш');
cirilica_small = new Array ('љ','њ','џ','Љ','Њ','Џ','Џ','а','б','в','г','д','ђ','е','ж','з','и','ј','к','л','м','н','о','п','р','с','т','ћ','у','ф','х','ц','ч','ш','А','Б','В','Г','Д','Ђ','Е','Ж','З','И','Ј','К','Л','М','Н','О','П','Р','С','Т','Ћ','У','Ф','Х','Ц','Ч','Ш');
for(i=0; i<cirilica_big.length; i++){
p = new RegExp(cirilica_small[i], "g");
retValue = retValue.replace(p, cirilica_big[i]);
}
return retValue;
}
function latSmall2Big(Source) {
var retValue = Source;
latinica_big = new Array('Č','Ć','Ž','Š','Đ');
latinica_small = new Array ('č','ć','ž','š','đ');
for(i=0; i<latinica_big.length; i++){
p = new RegExp(latinica_small[i], "g");
retValue = retValue.replace(p, latinica_big[i]);
}
return retValue;
}
function lat2uni(Source) {
var retValue = Source;
latinica = new Array('lj','nj','dž','Lj','LJ','Nj','NJ','Dž','DŽ','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š');
uni = new Array ('lj','nj','dž','Lj','LJ','NJ','NJ','Dž','Ž','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š');
for(i=0; i<latinica.length; i++){
p = new RegExp(latinica[i], "g");
retValue = retValue.replace(p, uni[i]);
}
return retValue;
}
function stripLatinTags(Source) {
var retValue = Source;
patternCodeLatStart = new RegExp('<lat', "g");
retValue = retValue.replace(patternCodeLatStart, '');
patternCodeLatEnd = new RegExp('/lat>', "g");
retValue = retValue.replace(patternCodeLatEnd, '');
return retValue;
}
function stripInputLatinTags(Source) {
var retValue = Source;
patternCodeLatStart = new RegExp('<lat', "g");
retValue = retValue.replace(patternCodeLatStart, '');
patternCodeLatEnd = new RegExp('/lat>', "g");
retValue = retValue.replace(patternCodeLatEnd, '');
return retValue;
}
function lat2cir(Source) {
var retValue = Source;
var patArray = new Array();
var splitArray = new Array();
latinica = new Array('lj','nj','dž','Lj','LJ','Nj','NJ','Dž','DŽ','a','b','v','g','d','đ','e','ž','z','i','j','k','l','m','n','o','p','r','s','t','ć','u','f','h','c','č','š','A','B','V','G','D','Đ','E','Ž','Z','I','J','K','L','M','N','O','P','R','S','T','Ć','U','F','H','C','Č','Š');
cirilica = new Array ('љ','њ','џ','Љ','Љ','Њ','Њ','Џ','Џ','а','б','в','г','д','ђ','е','ж','з', 'и', 'ј', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'ћ', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'А', 'Б', 'В', 'Г', 'Д', 'Ђ', 'Е', 'Ж', 'З', 'И', 'Ј', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'Ћ', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш');
// specSerbCharacters = new Array ('&нбсп', '&лт', '&гт', '&qуот', '&амп', '&лсqуо', '&рсqуо', '&бдqуо', '&лдqуо', '&рдqуо', '&ндасх', '&поунд', '&копy', '&рег', '&yен', '&пара', '&лаqуо', '&раqуо', '&цент', '&еуро', '&фрасл', '&мдасх', '&лсаqуо', '&рсаqуо');
// specLatCharacters = new Array (' ', '<', '>', '"', '&', '&lsquo', '&rsquo', '&bdquo', '&ldquo', '&rdquo', '&ndash', '£', '©', '®', '¥', '¶', '«', '»', '¢', '&euro', '&frasl', '&mdash', '&lsaquo', '&rsaquo');
specSerbCharacters = new Array ('&нбсп;', '&амп;', '&qуот;', '&цент;', '&еуро;', '&поунд;', '&yен;', '&цопy;', '&рег;', '&траде;', '&пермил;', '&мицро;', '&миддот;',
'&булл;', '&хеллип;', '&приме;', '&Приме;', '&сецт;', '&пара;', '&сзлиг;', '&лсаqуо;', '&рсаqуо;', '&лаqуо;', '&раqуо;', '&лсqуо;',
'&рсqуо;', '&лдqуо;', '&рдqуо;', '&сбqуо;', '&бдqуо;', '&лт;', '&гт;', '&ле;', '&ге;', '&ндасх;', '&мдасх;', '&мацр;', '&олине;', '&цуррен;',
'&брвбар;', '&умл;', '&иеxцл;', '&иqуест;', '&цирц;', '&тилде;', '&дег;', '&минус;', '&плусмн;', '&дивиде;', '&фрасл;', '&тимес;',
'&суп1;', '&суп2;', '&суп3;', '&фрац14;', '&фрац12;', '&фрац34;', '&фноф;', '&инт;', '&сум;', '&инфин;', '&радиц;', '&асyмп;', '&не;',
'&еqуив;', '&прод;', '&нот;', '&цап;', '&парт;', '&ацуте;', '&цедил;', '&ордф;', '&ордм;', '&даггер;', '&Даггер;', '&Аграве;', '&Аацуте;',
'&Ацирц;', '&Атилде;', '&Аумл;', '&Аринг;', '&АЕлиг;', '&Ццедил;', '&Еграве;', '&Еацуте;', '&Ецирц;', '&Еумл;', '&Играве;', '&Иацуте;',
'&Ицирц;', '&Иумл;', '&ЕТХ;', '&Нтилде;', '&Ограве;', '&Оацуте;', '&Оцирц;', '&Отилде;', '&Оумл;', '&Осласх;', '&ОЕлиг;', '&Сцарон;',
'&Уграве;', '&Уацуте;', '&Уцирц;', '&Уумл;', '&Yацуте;', '&Yумл;', '&ТХОРН;', '&аграве;', '&аацуте;', '&ацирц;', '&атилде;', '&аумл;', '&аринг;',
'&аелиг;', '&ццедил;', '&еграве;', '&еацуте;', '&ецирц;', '&еумл;', '&играве;', '&иацуте;', '&ицирц;', '&иумл;', '&етх;', '&нтилде;',
'&ограве;', '&оацуте;', '&оцирц;', '&отилде;', '&оумл;', '&осласх;', '&оелиг;', '&сцарон;', '&уграве;', '&уацуте;', '&уцирц;', '&уумл;', '&yацуте;',
'&тхорн;', '&yумл;', '&Бета;', '&Гамма;', '&Делта;', '&Епсилон;', '&Зета;', '&Ета;', '&Тхета;', '&Иота;', '&Каппа;', '&Ламбда;', '&Му;',
'&Ну;', '&Xи;', '&Омицрон;', '&Пи;', '&Рхо;', '&Сигма;', '&Тау;', '&Упсилон;', '&Пхи;', '&Цхи;', '&Пси;', '&Омега;', '&алпха;', '&бета;', '&гамма;',
'&делта;', '&епсилон;', '&зета;', '&ета;', '&тхета;', '&иота;', '&каппа;', '&ламбда;', '&му;', '&ну;', '&xи;', '&омицрон;', '&пи;',
'&рхо;', '&сигмаф;', '&сигма;', '&тау;', '&упсилон;', '&пхи;', '&цхи;', '&пси;', '&омега;', '&ларр;', '&уарр;', '&рарр;', '&дарр;',
'&харр;', '&лоз;', '&цлубс;', '&хеартс;', '&диамс;');
specLatCharacters = new Array ('*', '&', '"', '¢', '€', '£', '¥', '©', '®', '™', '‰', 'µ', '·',
'•', '…', '′', '″', '§', '¶', 'ß', '‹', '›', '«', '»', '‘',
'’', '“', '”', '‚', '„', '<', '>', '≤', '≥', '–', '—', '¯',
'‾', '¤', '¦', '¨', '¡', '¿', 'ˆ', '˜', '°', '−', '±', '÷', '⁄',
'×', '¹', '²', '³', '¼', '½', '¾', 'ƒ', '∫', '∑', '∞', '√', '≈',
'≠', '≡', '∏', '¬', '∩', '∂', '´', '¸', 'ª', 'º', '†', '‡', 'À',
'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î',
'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Œ', 'Š', 'Ù', 'Ú', 'Û',
'Ü', 'Ý', 'Ÿ', 'Þ', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é',
'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø',
'œ', 'š', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ',
'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ',
'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ',
'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ',
'ω', '←', '↑', '→', '↓', '↔', '◊', '♣', '♥', '♦');
var patternCodeLatStart = new RegExp('<lat', "g");
retValue = retValue.replace(patternCodeLatStart, '<lat');
var patternCodeLatEnd = new RegExp('/lat>', "g");
retValue = retValue.replace(patternCodeLatEnd, '/lat>');
pattern = new RegExp('<.*?>', "g");
patArray = retValue.match(pattern);
for(i=0; i<latinica.length; i++){
p = new RegExp(latinica[i], "g");
retValue = retValue.replace(p, cirilica[i]);
}
newPatArray = retValue.match(pattern);
posOfPatArray = new Array();
if(patArray != null && patArray.length>0){
var pos = 0;
var splitPos = 0;
var maxNum = 0;
var newRetValue = "";
splitArray = retValue.split(pattern);
posOfSplitArray = new Array();
for(i=0; i<patArray.length; i++){
pos = retValue.indexOf(newPatArray[i], pos);
posOfPatArray[i] = pos;
pos = pos + newPatArray[i].length;
}
if(splitArray != null && splitArray.length>0){
for(i=0; i<splitArray.length; i++){
splitPos = retValue.indexOf(splitArray[i], splitPos);
posOfSplitArray[i] = splitPos;
splitPos = splitPos + splitArray[i].length;
}
maxNum = patArray.length + splitArray.length;
var j = 0;
var k = 0;
for(i=0; i<maxNum; i++){
if(k<patArray.length){
if(j<splitArray.length){
if(posOfPatArray[k] < posOfSplitArray[j]){
newRetValue = newRetValue + patArray[k];
k++;
} else {
newRetValue = newRetValue + splitArray[j];
j++;
}
} else {
if(k<=patArray.length){
newRetValue = newRetValue + patArray[k];
k++;
}
}
} else {
if(j<=splitArray.length){
newRetValue = newRetValue + splitArray[j];
j++;
}
}
}
} else {
var k = 0;
maxNum = patArray.length;
for(i=0; i<maxNum; i++){
if(k<=patArray.length){
newRetValue = newRetValue + patArray[k];
k++;
}
}
}
for(i=0; i<specSerbCharacters.length; i++){
specPattern = new RegExp(specSerbCharacters[i], "g");
newRetValue = newRetValue.replace(specPattern, specLatCharacters[i]);
}
// alert("newRetValue: " + newRetValue);
patternCodeLatStart = new RegExp('<lat', "g");
newRetValue = newRetValue.replace(patternCodeLatStart, '');
patternCodeLatEnd = new RegExp('/lat>', "g");
newRetValue = newRetValue.replace(patternCodeLatEnd, '');
// alert("newRetValue: " + newRetValue);
return newRetValue;
}
for(i=0; i<specSerbCharacters.length; i++){
specPattern = new RegExp(specSerbCharacters[i], "g");
retValue = retValue.replace(specPattern, specLatCharacters[i]);
}
// alert("retValue: " + retValue);
return retValue;
}
/* function cir2uni(Source) {
uni = new Array('љ','њ','џ','Љ','Љ',
'Њ','Њ','Џ','Џ','а',
'б','в','г','д','ђ',
'е','ж','з','и','ј',
'к','л','м','н','о',
'п','р','с','т','ћ',
'у','ф','х','ц','ч',
'ш','А','Б','В','Г',
'Д','Ђ','Е','Ж','З',
'И','Ј','•','Л','М',
'Н','К','П','Р','С',
'Т','Ћ','У','Ф','Х','Ц');
cirilica = new Array ('љ','њ','џ','Љ','Љ',
'Њ','Њ','Џ','Џ','а',
'б','в','г','д','ђ',
'е','ж','з','и','ј',
'к','л','м','н','о',
'п','р','с','т','ћ',
'у','ф','х','ц','ч',
'ш','А','Б','В','Г',
'Д','Ђ','Е','Ж','З',
'И','Ј','K','Л','М',
'Н','O','П','Р','С',
'Т','Ћ','У','Ф','Х',
'Ц');
return preg_replace(cirilica,uni,Source);
} */
function cir2unilat(Source) { //cirilica u latinicni unicod
var retValue = Source;
cirilica = new Array('љ','њ','џ','Љ','Љ',
'Њ','Њ','Џ','Џ','а',
'б','в','г','д','ђ',
'е','ж','з','и','ј',
'к','л','м','н','о',
'п','р','с','т','ћ',
'у','ф','х','ц','ч',
'ш','А','Б','В','Г',
'Д','Ђ','Е','Ж','З',
'И','Ј','K','Л','М',
'Н','O','П','Р','С',
'Т','Ћ','У','Ф','Х',
'Ц');
uni = new Array ('lj','nj','dž','Lj','LJ',
'NJ','NJ','Dž','Ž',
'a','b','v','g','d','đ',
'e','ž','z','i','j','k',
'l','m','n','o','p','r','s',
't','ć','u','f','h','c',
'č','š','A','B','V',
'G','D','Đ','E','Ž',
'Z','I','J','K','L','M','N','O',
'P','R','S','T','Ć','U','F',
'H','C','Č','Š');
for(i=0; i<cirilica.length; i++){
p = new RegExp(cirilica[i], "g");
retValue = retValue.replace(p, uni[i]);
}
return retValue;
}
function cir2uni(Source) { //cirilica u unikod
var retValue = Source;
uni = new Array('љ','њ','џ','Љ','Љ',
'Њ','Њ','Џ','Џ','а',
'б','в','г','д','ђ',
'е','ж','з','и','ј',
'к','л','м','н','о',
'п','р','с','т','ћ',
'у','ф','х','ц','ч',
'ш','А','Б','В','Г',
'Д','Ђ','Е','Ж','З',
'И','Ј','Л','М','Н',
'П','Р','С','Т','Ћ',
'У','Ф','Х','Ц','Ч',
'Ш');
cirilica = new Array ('љ','њ','џ','Љ','Љ',
'Њ','Њ','Џ','Џ','а',
'б','в','г','д','ђ',
'е','ж','з','и','ј',
'к','л','м','н','о',
'п','р','с','т','ћ',
'у','ф','х','ц','ч',
'ш','А','Б','В','Г',
'Д','Ђ','Е','Ж','З',
'И','Ј','K','Л','М',
'Н','O','П','Р','С',
'Т','Ћ','У','Ф','Х',
'Ц');
for(i=0; i<cirilica.length; i++){
p = new RegExp(cirilica[i], "g");
retValue = retValue.replace(p, uni[i]);
}
return retValue;
//return preg_replace(cirilica,uni,Source);
}
/*
function stripuj(s){
s = stripslashes(s);
s = str_replace('"',"\"",s);
return s;
}
function prevedi_l(text){
return stripuj(lat2uni(text));
}
function prevedi_c(text){
return stripuj(cir2uni(text));
}
function prevedi_c_l(text){
return stripuj(cir2unilat(text));
}
function prevedi(){
prevod=stripuj(cir2lat(sadrzaj));
}
function prevedi_druga(text){
return stripuj(cir2lat(text));
}
function prev_u_cir(text){
return stripuj(lat2cir(text));
}
function prevedi_u_uni(text){
return stripuj(lat2uni(text));
}
*/
Samo mi nije jasno akko se ovo koristi. Scripta automatski prebacuje tekst iz latinice u cirilicu ili obratno.