Показать сообщение отдельно
  #6 (permalink)  
Старый 19.03.2009, 08:52
Аватар для skif
Интересующийся
Отправить личное сообщение для skif Посмотреть профиль Найти все сообщения от skif
 
Регистрация: 11.03.2009
Сообщений: 15

код часть 4:
// ------------------------------------Start garbage-----------------------------------------
// Translit:
// -------------------------- CONVERT TO RUS --------------------------
// 1 character letters
eng_table = "ABVGDEZIJKLMNOPRSTUFHXCYabvgdezijklmnoprstufhxcy'";
rus_table = "АБВГДЕЗИЙКЛМНОПРСТУФХХЦЫабвгдезийклмнопрстуфххцыь";
// 2 character letters
eng_table2 = "YOJOZHCHSHYUJUYAJAyojozhchshyujuyajaYoYoZhChShYuJuYaJa";
rus_table2 = "ЁЁЖЧШЮЮЯЯёёжчшююяяЁЁЖЧШЮЮЯЯ";

function translit2win(str) 
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
// Check for 2-character letters
is2char=false;
if (i < len-1) 
{
for(j = 0; j < rus_table2.length; j++)
{
if(str.substr(i, 2) == eng_table2.substr(j*2,2)) 
{
new_str+= rus_table2.substr(j, 1);
i++;
is2char=true;
break;
}
}
}

if(!is2char) 
{
// Convert one-character letter
var c = str.substr(i, 1);
var pos = eng_table.indexOf(c);
if (pos < 0)
new_str+= c;
else 
new_str+= rus_table.substr(pos, 1);
}
}
return new_str;
}


// -------------------------- CONVERT TO LAT --------------------------
lat_eng_table = "ABVGDEJZIYKLMNOPRSTUFH4CIabvgdejziyklmnoprstufh4ci'";
lat_rus_table = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЧЦЫабвгдежзийклмнопрстуфхчцыь";

function translit2lat(str) 
{
var len = str.length;
var new_str="";

for (i = 0; i < len; i++)
{
// Check for 2-character letters
is2char=false;
if (i < len) 
{
if(str.substr(i, 1) == 'Ю') 
{
new_str += 'YU ';
i++;
is2char=true;
}
if(str.substr(i, 1) == 'ю') 
{
new_str += 'yu ';
i++;
is2char=true;
}

if(str.substr(i, 1) == 'Я') 
{
new_str += 'YA ';
i++;
is2char=true;
}
if(str.substr(i, 1) == 'я') 
{
// alert("1"+str.substr(i, 1)+"1");
new_str += 'ya ';
i++;
is2char=true;
}
}
// Convert one-character letter
if(!is2char) 
{
var c = str.substr(i, 1);
var pos = lat_rus_table.indexOf(c);
if (pos < 0)
new_str+= c;
else 
new_str+= lat_eng_table.substr(pos, 1);
}
}
return new_str;
}
Ответить с цитированием