Делая свой движок, столкнулся с вопросом автоматического формирования адреса в транслите. Поискал в сети подходящий javascript, подправил его немного под себя, и
вот что получилось.
файл
rus2translit.jsvar rusChars = new Array('а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ч','ц','ш','щ','э','ю','\я','ы','ъ','ь', ' ', '\'', '\"', '\#', '\$', '\%', '\&', '\*', '\,', '\:', '\;', '\<', '\>', '\?', '\[', '\]', '\^', '\{', '\}', '\|', '\!', '\@', '\(', '\)', '\-', '\=', '\+', '\/', '\\');
var transChars = new Array('a','b','v','g','d','e','jo','zh','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','ch','c','sh','csh','e','ju','ja','y','', '', '_', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
var from = "";
function undo()
{
document.forms[0].text.value = from;
}
function convert(from, to)
{
from = document.getElementById(from).value;
from = from.toLowerCase();
var to = "";
var len = from.length;
var character, isRus;
for(i=0; i < len; i++)
{
character = from.charAt(i,1);
isRus = false;
for(j=0; j < rusChars.length; j++)
{
if(character == rusChars[j])
{
isRus = true;
break;
}
}
to += (isRus) ? transChars[j] : character;
}
document.getElementById(to).value = to;
document.getElementById(from).focus();
}
на странице пишем так
<script type="text/javascript" src="rus2translit.js"></script>
<input type="text" onkeyup="convert('input' ,'output');" id="input" name="input" />
<input type="text" name="output" id="output"/>