Показать сообщение отдельно
  #12 (permalink)  
Старый 28.05.2013, 18:40
Новичок на форуме
Отправить личное сообщение для edmonsur Посмотреть профиль Найти все сообщения от edmonsur
 
Регистрация: 28.05.2013
Сообщений: 1

Сообщение от GuardCat Посмотреть сообщение
dmitriymar, зачем же словарь? Есть ГОСТ 7.79-2000, который обеспечивает безошибочную двухстороннюю транслитерацию. Вот пример в лоб:
//Если с английского на русский, то передаём вторым параметром true.
transliterate = (
	function() {
		var
			rus = "щ   ш  ч  ц  ю  я  ё  ж  ъ  ы  э  а б в г д е з и й к л м н о п р с т у ф х ь".split(/ +/g),
			eng = "shh sh ch cz yu ya yo zh `` y' e` a b v g d e z i j k l m n o p r s t u f x `".split(/ +/g)
		;
		return function(text, engToRus) {
			var x;
			for(x = 0; x < rus.length; x++) {
				text = text.split(engToRus ? eng[x] : rus[x]).join(engToRus ? rus[x] : eng[x]);
				text = text.split(engToRus ? eng[x].toUpperCase() : rus[x].toUpperCase()).join(engToRus ? rus[x].toUpperCase() : eng[x].toUpperCase());	
			}
			return text;
		}
	}
)();
var txt = "Съешь ещё этих мягких французских булок, да выпей же чаю!";
alert(transliterate(txt));
alert(transliterate(transliterate(txt), true));
скрипт не плохой но не доработанный автор ссылаясь на Гост забыл его прочесть как следует. а именно примечание с низу к примеру с буквой "Ц"

Однозначная обратимость обеспечивается специфическим употреблением латинских букв h, у, с и символа `. Буквы h, у не означают сами по себе никаких кирилловских букв и употребляются только в буквосочетаниях.

Для кириллических букв Ц и I установлены два варианта транслитерации. Ц передается либо латинской С, либо сочетанием CZ. Рекомендуется употреблять С перед буквами I, Е, Y, J, а в остальных случаях — CZ.
Ответить с цитированием