Pogledajte određenu poruku
Staro 31. 05. 2008.   #1
Mladjo
Mladen Milentijevic
Professional
 
Avatar Mladjo
 
Datum učlanjenja: 20.06.2007
Lokacija: Sweden
Poruke: 224
Hvala: 43
21 "Hvala" u 21 poruka
Mladjo is on a distinguished road
Default Izmena latinice u ćirilicu i obrnuto

Nasao sam ovu scriptu na sajtu Radio Televizije Vojvodina
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('&lt;lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '');
		patternCodeLatEnd = new RegExp('/lat&gt;', "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 ('&nbsp', '&lt', '&gt', '&quot', '&amp', '&lsquo', '&rsquo', '&bdquo', '&ldquo', '&rdquo', '&ndash', '&pound', '&copy', '&reg', '&yen', '&para', '&laquo', '&raquo', '&cent', '&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('&lt;lat', "g");
		retValue = retValue.replace(patternCodeLatStart, '<lat');
		var patternCodeLatEnd = new RegExp('/lat&gt;', "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.
__________________
Mladen Milentijevic
Mladjo je offline   Odgovorite uz citat