Вот JS для транслитерации переданной фразы с русского на английский для нужд URL. Можно изменить свои данные, чтобы подать заявку на французский или любой другой язык. Все, кроме букв и цифр, заменяется на «-», двойные и заканчивающиеся «-» удаляются.
function url(word, letterVersionOrder) {
var letters = 'a b v g d e ["zh","j"] z i y k l m n o p r s t u f h c ch sh ["shh","shch"] ~ y ~ e yu ya ~ ["jo","e"]'.split(' ');
var wordSeparator = '';
word = word.toLowerCase();
for (var i = 0; i < word.length; ++i) {
var charCode = word.charCodeAt(i);
var chars = (charCode >= 1072 ? letters[charCode - 1072] : word[i]);
if (chars.length < 3) {
wordSeparator += chars;
} else {
wordSeparator += eval(chars)[letterVersionOrder];
}
}
return(wordSeparator.
replace(/[^a-zA-Z0-9\-]/g, '-').
replace(/[-]{2,}/gim, '-').
replace(/^\-+/g, '').
replace(/\-+$/g, ''));
}
Вот более быстрая минимизированная версия:
function url(w, v) { var tr = 'a b v g d e ["zh","j"] z i y k l m n o p r s t u f h c ch sh ["shh","shch"] ~ y ~ e yu ya ~ ["jo","e"]'.split(' '); var ww = ''; w = w.toLowerCase(); for (var i = 0; i < w.length; ++i) { var cc = w.charCodeAt(i); var ch = (cc >= 1072 ? tr[cc - 1072] : w[i]); if (ch.length < 3) {ww += ch;} else {ww += eval(ch)[v];} } return(ww.replace(/[^a-zA-Z0-9\-]/g, '-').replace(/[-]{2,}/gim, '-').replace(/^\-+/g, '').replace(/\-+$/g, ''));}
Принято с здесь .