проблем с превод от латиница на кирилица

Pro_Lamer4e

Registered
върнах се малко назад в времето кога на мода бяха тъй наречените торрент сайтове... в него има една java която превежда текста но е на руски. Как да го препработа за да е на български ето цялата java

Код:
<script type="text/javascript" language="JavaScript">
	function RowsTextarea(n, w) {
		var inrows = document.getElementById(n);
		if (w < 1) {
			var rows = -5;
		} else {
			var rows = +5;
		}
		var outrows = inrows.rows + rows;
		if (outrows >= 5 && outrows < 50) {
			inrows.rows = outrows;
		}
		return false;
	}

	var SelField = document.<?php echo $form;?>.<?php echo $name;?>;
	var TxtFeld = document.<?php echo $form;?>.<?php echo $name;?>;

	var clientPC = navigator.userAgent.toLowerCase(); // Get client info
	var clientVer = parseInt(navigator.appVersion); // Get browser version

	var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
	var is_nav = ((clientPC.indexOf('mozilla') != -1) && (clientPC.indexOf('spoofer') == -1)
		&& (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera') == -1)
		&& (clientPC.indexOf('webtv') == -1) && (clientPC.indexOf('hotjava') == -1));

	var is_moz = 0;

	var is_win = ((clientPC.indexOf("win") != -1) || (clientPC.indexOf("16bit") != -1));
	var is_mac = (clientPC.indexOf("mac") != -1);

	function StoreCaret(text) {
		if (text.createTextRange) {
			text.caretPos = document.selection.createRange().duplicate();
		}
	}
	function FieldName(text, which) {
		if (text.createTextRange) {
			text.caretPos = document.selection.createRange().duplicate();
		}
		if (which != "") {
			var Field = eval("document.<?php echo $form;?>." + which);
			SelField = Field;
			TxtFeld = Field;
		}
	}
	function AddSmile(SmileCode) {
		var SmileCode;
		var newPost;
		var oldPost = SelField.value;
		newPost = oldPost + SmileCode;
		SelField.value = newPost;
		SelField.focus();
		return;
	}
	function AddSelectedText(Open, Close) {
		if (SelField.createTextRange && SelField.caretPos && Close == '\n') {
			var caretPos = SelField.caretPos;
			caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? Open + Close + ' ' : Open + Close;
			SelField.focus();
		} else if (SelField.caretPos) {
			SelField.caretPos.text = Open + SelField.caretPos.text + Close;
		} else {
			SelField.value += Open + Close;
			SelField.focus();
		}
	}
	function InsertCode(code, info, type, error) {
		if (code == 'name') {
			AddSelectedText('[b]' + info + '[/b]', '\n');
		} else if (code == 'url' || code == 'mail') {
			if (code == 'url') var url = prompt(info, 'http://');
			if (code == 'mail') var url = prompt(info, '');
			if (!url) return alert(error);
			if ((clientVer >= 4) && is_ie && is_win) {
				selection = document.selection.createRange().text;
				if (!selection) {
					var title = prompt(type, type);
					AddSelectedText('[' + code + '=' + url + ']' + title + '[/' + code + ']', '\n');
				} else {
					AddSelectedText('[' + code + '=' + url + ']', '[/' + code + ']');
				}
			} else {
				mozWrap(TxtFeld, '[' + code + '=' + url + ']', '[/' + code + ']');
			}
		} else if (code == 'color' || code == 'family' || code == 'size') {
			if ((clientVer >= 4) && is_ie && is_win) {
				AddSelectedText('[' + code + '=' + info + ']', '[/' + code + ']');
			} else if (TxtFeld.selectionEnd && (TxtFeld.selectionEnd - TxtFeld.selectionStart > 0)) {
				mozWrap(TxtFeld, '[' + code + '=' + info + ']', '[/' + code + ']');
			}
		} else if (code == 'li' || code == 'hr') {
			if ((clientVer >= 4) && is_ie && is_win) {
				AddSelectedText('[' + code + ']', '');
			} else {
				mozWrap(TxtFeld, '[' + code + ']', '');
			}
		} else {
			if ((clientVer >= 4) && is_ie && is_win) {
				var selection = false;
				selection = document.selection.createRange().text;
				if (selection && code == 'quote') {
					AddSelectedText('[' + code + ']' + selection + '[/' + code + ']', '\n');
				} else {
					AddSelectedText('[' + code + ']', '[/' + code + ']');
				}
			} else {
				mozWrap(TxtFeld, '[' + code + ']', '[/' + code + ']');
			}
		}
	}

	function mozWrap(txtarea, open, close) {
		var selLength = txtarea.textLength;
		var selStart = txtarea.selectionStart;
		var selEnd = txtarea.selectionEnd;
		if (selEnd == 1 || selEnd == 2)
			selEnd = selLength;

		var s1 = (txtarea.value).substring(0, selStart);
		var s2 = (txtarea.value).substring(selStart, selEnd)
		var s3 = (txtarea.value).substring(selEnd, selLength);
		var sT = txtarea.scrollTop, sL = txtarea.scrollLeft;
		txtarea.value = s1 + open + s2 + close + s3;
		txtarea.focus();
		txtarea.scrollTop = sT;
		txtarea.scrollLeft = sL;
		return;
	}

	language = 1;
	richtung = 1;
	var DOM = document.getElementById ? 1 : 0,
		opera = window.opera && DOM ? 1 : 0,
		IE = !opera && document.all ? 1 : 0,
		NN6 = DOM && !IE && !opera ? 1 : 0;
	var ablauf = new Date();
	var jahr = ablauf.getTime() + (365 * 24 * 60 * 60 * 1000);
	ablauf.setTime(jahr);
	var richtung = 1;
	var isChat = false;
	NoHtml = true;
	NoScript = true;
	NoStyle = true;
	NoBBCode = true;
	NoBefehl = false;

	function setZustand() {
		transHtmlPause = false;
		transScriptPause = false;
		transStylePause = false;
		transBefehlPause = false;
		transBBPause = false;
	}
	setZustand();
	function keks(Name, Wert) {
		document.cookie = Name + "=" + Wert + "; expires=" + ablauf.toGMTString();
	}
	function changeNoTranslit(Nr) {
		if (document.trans.No_translit_HTML.checked)NoHtml = true; else {
			NoHtml = false
		}
		if (document.trans.No_translit_BBCode.checked)NoBBCode = true; else {
			NoBBCode = false
		}
		keks("NoHtml", NoHtml);
		keks("NoScript", NoScript);
		keks("NoStyle", NoStyle);
		keks("NoBBCode", NoBBCode);
	}
	function changeRichtung(r) {
		richtung = r;
		keks("TransRichtung", richtung);
		setFocus()
	}
	function changelanguage() {
		if (language == 1) {
			language = 0;
		}
		else {
			language = 1;
		}
		keks("autoTrans", language);
		setFocus();
		setZustand();
	}
	function setFocus() {
		TxtFeld.focus();
	}
	function repl(t, a, b) {
		var w = t, i = 0, n = 0;
		while ((i = w.indexOf(a, n)) >= 0) {
			t = t.substring(0, i) + b + t.substring(i + a.length, t.length);
			w = w.substring(0, i) + b + w.substring(i + a.length, w.length);
			n = i + b.length;
			if (n >= w.length) {
				break;
			}
		}
		return t;
	}
	var rus_lr2 = ('Е-е-О-о-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Ю-Ю-Я-Я-Я-Я-ж-ч-ш-щ-ю-я-я').split('-');
	var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ' + String.fromCharCode(35) + '-ь' + String.fromCharCode(39) + '-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
	var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ь-я').split('-');
	var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-' + String.fromCharCode(35) + '-y-' + String.fromCharCode(39) + '-q').split('-');
	var rus_rl = ('А-Б-В-Г-Д-Е-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ь-Ю-Я-а-б-в-г-д-е-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ь-ю-я').split('-');
	var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH' + String.fromCharCode(35) + String.fromCharCode(35) + '-Y-' + String.fromCharCode(39) + String.fromCharCode(39) + '-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh' + String.fromCharCode(35) + '-y-' + String.fromCharCode(39) + '-je-ju-ja').split('-');
	var transAN = true;
	function transliteText(txt) {
		vorTxt = txt.length > 1 ? txt.substr(txt.length - 2, 1) : "";
		buchstabe = txt.substr(txt.length - 1, 1);
		txt = txt.substr(0, txt.length - 2);
		return txt + translitBuchstabeCyr(vorTxt, buchstabe);
	}
	function translitBuchstabeCyr(vorTxt, txt) {
		var zweiBuchstaben = vorTxt + txt;
		var code = txt.charCodeAt(0);

		if (txt == "<")transHtmlPause = true; else if (txt == ">")transHtmlPause = false;
		if (txt == "<script")transScriptPause = true; else if (txt == "<" + "/script>")transScriptPause = false;
		if (txt == "<style")transStylePause = true; else if (txt == "<" + "/style>")transStylePause = false;
		if (txt == "[")transBBPause = true; else if (txt == "]")transBBPause = false;
		if (txt == "/")transBefehlPause = true; else if (txt == " ")transBefehlPause = false;

		if (
			(transHtmlPause == true && NoHtml == true) ||
				(transScriptPause == true && NoScript == true) ||
				(transStylePause == true && NoStyle == true) ||
				(transBBPause == true && NoBBCode == true) ||
				(transBefehlPause == true && NoBefehl == true) || !(((code >= 65) && (code <= 123)) || (code == 35) || (code == 39))) return zweiBuchstaben;

		for (x = 0; x < lat_lr2.length; x++) {
			if (lat_lr2[x] == zweiBuchstaben) return rus_lr2[x];
		}
		for (x = 0; x < lat_lr1.length; x++) {
			if (lat_lr1[x] == txt) return vorTxt + rus_lr1[x];
		}
		return zweiBuchstaben;
	}
	function translitBuchstabeLat(buchstabe) {
		for (x = 0; x < rus_rl.length; x++) {
			if (rus_rl[x] == buchstabe)
				return lat_rl[x];
		}
		return buchstabe;
	}
	function translateAlltoLatin() {
		if (!IE) {
			var txt = TxtFeld.value;
			var txtnew = "";
			var symb = "";
			for (y = 0; y < txt.length; y++) {
				symb = translitBuchstabeLat(txt.substr(y, 1));
				txtnew += symb;
			}
			TxtFeld.value = txtnew;
			setFocus()
		} else {
			var is_selection_flag = 1;
			var userselection = document.selection.createRange();
			var txt = userselection.text;

			if (userselection == null || userselection.text == null || userselection.parentElement == null || userselection.parentElement().type != "textarea") {
				is_selection_flag = 0;
				txt = TxtFeld.value;
			}
			txtnew = "";
			var symb = "";
			for (y = 0; y < txt.length; y++) {
				symb = translitBuchstabeLat(txt.substr(y, 1));
				txtnew += symb;
			}
			if (is_selection_flag) {
				userselection.text = txtnew;
				userselection.collapse();
				userselection.select();
			} else {
				TxtFeld.value = txtnew;
				setFocus()
			}
		}
		return;
	}
	function TransliteFeld(object, evnt) {
		if (language == 1 || opera) return;
		if (NN6) {
			var code = void 0;
			var code = evnt.charCode;
			var textareafontsize = 14;
			var textreafontwidth = 7;
			if (code == 13) {
				return;
			}
			if (code && (!(evnt.ctrlKey || evnt.altKey))) {
				pXpix = object.scrollTop;
				pYpix = object.scrollLeft;
				evnt.preventDefault();
				txt = String.fromCharCode(code);
				pretxt = object.value.substring(0, object.selectionStart);
				result = transliteText(pretxt + txt);
				object.value = result + object.value.substring(object.selectionEnd);
				object.setSelectionRange(result.length, result.length);
				object.scrollTop = 100000;
				object.scrollLeft = 0;

				cXpix = (result.split("\n").length) * (textareafontsize + 3);
				cYpix = (result.length - result.lastIndexOf("\n") - 1) * (textreafontwidth + 1);
				taXpix = (object.rows + 1) * (textareafontsize + 3);
				taYpix = object.clientWidth;

				if ((cXpix > pXpix) && (cXpix < (pXpix + taXpix))) object.scrollTop = pXpix;
				if (cXpix <= pXpix) object.scrollTop = cXpix - (textareafontsize + 3);
				if (cXpix >= (pXpix + taXpix)) object.scrollTop = cXpix - taXpix;

				if ((cYpix >= pYpix) && (cYpix < (pYpix + taYpix))) object.scrollLeft = pYpix;
				if (cYpix < pYpix) object.scrollLeft = cYpix - (textreafontwidth + 1);
				if (cYpix >= (pYpix + taYpix)) object.scrollLeft = cYpix - taYpix + 1;
			}
			return true;
		} else if (IE) {
			if (isChat) {
				var code = frames['input'].event.keyCode;
				if (code == 13) {
					return;
				}
				txt = String.fromCharCode(code);
				cursor_pos_selection = frames['input'].document.selection.createRange();
				cursor_pos_selection.text = "";
				cursor_pos_selection.moveStart("character", -1);
				vorTxt = cursor_pos_selection.text;
				if (vorTxt.length > 1) {
					vorTxt = "";
				}
				frames['input'].event.keyCode = 0;
				if (richtung == 2) {
					result = vorTxt + translitBuchstabeLat(txt)
				} else {
					result = translitBuchstabeCyr(vorTxt, txt)
				}
				if (vorTxt != "") {
					cursor_pos_selection.select();
					cursor_pos_selection.collapse();
				}
				with (frames['input'].document.selection.createRange()) {
					text = result;
					collapse();
					select()
				}
			} else {
				var code = event.keyCode;
				if (code == 13) {
					return;
				}
				txt = String.fromCharCode(code);
				cursor_pos_selection = document.selection.createRange();
				cursor_pos_selection.text = "";
				cursor_pos_selection.moveStart("character", -1);
				vorTxt = cursor_pos_selection.text;
				if (vorTxt.length > 1) {
					vorTxt = "";
				}
				event.keyCode = 0;
				if (richtung == 2) {
					result = vorTxt + translitBuchstabeLat(txt)
				} else {
					result = translitBuchstabeCyr(vorTxt, txt)
				}
				if (vorTxt != "") {
					cursor_pos_selection.select();
					cursor_pos_selection.collapse();
				}
				with (document.selection.createRange()) {
					text = result;
					collapse();
					select()
				}
			}
			return;
		}
	}
	function translateAlltoCyrillic() {
		if (!IE) {
			txt = TxtFeld.value;
			var txtnew = translitBuchstabeCyr("", txt.substr(0, 1));
			var symb = "";
			for (kk = 1; kk < txt.length; kk++) {
				symb = translitBuchstabeCyr(txtnew.substr(txtnew.length - 1, 1), txt.substr(kk, 1));
				txtnew = txtnew.substr(0, txtnew.length - 1) + symb;
			}
			TxtFeld.value = txtnew;
			setFocus()
		} else {
			var is_selection_flag = 1;
			var userselection = document.selection.createRange();
			var txt = userselection.text;
			if (userselection == null || userselection.text == null || userselection.parentElement == null || userselection.parentElement().type != "textarea") {
				is_selection_flag = 0;
				txt = TxtFeld.value;
			}
			var txtnew = translitBuchstabeCyr("", txt.substr(0, 1));
			var symb = "";
			for (kk = 1; kk < txt.length; kk++) {
				symb = translitBuchstabeCyr(txtnew.substr(txtnew.length - 1, 1), txt.substr(kk, 1));
				txtnew = txtnew.substr(0, txtnew.length - 1) + symb;
			}
			if (is_selection_flag) {
				userselection.text = txtnew;
				userselection.collapse();
				userselection.select();
			} else {
				TxtFeld.value = txtnew;
				setFocus()
			}
		}
		return;
	}
	</script>

най много ме интересува тази част

Код:
var rus_lr2 = ('Е-е-О-о-Ж-Ж-Ч-Ч-Ш-Ш-Щ-Щ-Ъ-Ь-Ю-Ю-Я-Я-Я-Я-ж-ч-ш-щ-ю-я-я').split('-');
	var lat_lr2 = ('/E-/e-/O-/o-ЫO-Ыo-ЙO-Йo-ЗH-Зh-ЦH-Цh-СH-Сh-ШH-Шh-ъ' + String.fromCharCode(35) + '-ь' + String.fromCharCode(39) + '-ЙE-Йe-ЙU-Йu-ЙA-Йa-ЫA-Ыa-ыo-йo-зh-цh-сh-шh-йe-йu-йa-ыa').split('-');
	var rus_lr1 = ('А-Б-В-Г-Д-Е-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Х-Ц-Щ-Я-а-б-в-г-д-е-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-х-ц-щ-ъ-ь-я').split('-');
	var lat_lr1 = ('A-B-V-G-D-E-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-X-C-W-Y-Q-a-b-v-g-d-e-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-x-c-w-' + String.fromCharCode(35) + '-y-' + String.fromCharCode(39) + '-q').split('-');
	var rus_rl = ('А-Б-В-Г-Д-Е-Ж-З-И-Й-К-Л-М-Н-О-П-Р-С-Т-У-Ф-Х-Ц-Ч-Ш-Щ-Ъ-Ь-Ю-Я-а-б-в-г-д-е-ж-з-и-й-к-л-м-н-о-п-р-с-т-у-ф-х-ц-ч-ш-щ-ъ-ь-ю-я').split('-');
	var lat_rl = ('A-B-V-G-D-E-JO-ZH-Z-I-J-K-L-M-N-O-P-R-S-T-U-F-H-C-CH-SH-SHH' + String.fromCharCode(35) + String.fromCharCode(35) + '-Y-' + String.fromCharCode(39) + String.fromCharCode(39) + '-JE-JU-JA-a-b-v-g-d-e-jo-zh-z-i-j-k-l-m-n-o-p-r-s-t-u-f-h-c-ch-sh-shh' + String.fromCharCode(35) + '-y-' + String.fromCharCode(39) + '-je-ju-ja').split('-');
	var transAN = true;
	function transliteText(txt) {
		vorTxt = txt.length > 1 ? txt.substr(txt.length - 2, 1) : "";
		buchstabe = txt.substr(txt.length - 1, 1);
		txt = txt.substr(0, txt.length - 2);
		return txt + translitBuchstabeCyr(vorTxt, buchstabe);
	}
 
1. Това е JavaScript, който няма нищо общо с Java.
2. В този код няма нищо руско. Идеята е да конвертира латиница на кирилица.
 
Абе, хора, изрових тука от домашната библиотека един прашен речник. Само че е английско-руски; как да го оправя да е за български?

‑‑‑‑‑‑‑‑
Най-лесно [каквото изглежда е целта в случая] ще ти е да заместиш руското Ы с български еквивалент.. дори не виждам обърнатото Е.
 

Горе