Тема: Транслит
Показать сообщение отдельно
Старый 28.05.2008, 11:28   #10  
Lucky13 is offline
Lucky13
Участник
 
674 / 150 (7) ++++++
Регистрация: 21.10.2004
Адрес: Воронеж
X++:
static str translit(str value, boolean letteronly = false)
{
    container rus = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я'];
    container lat = ['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','sch','','y','','e','ju','ja'];
    int i, n;
    str letter;
    str ret;
    ;
    for (i = 1;i<=strlen(value);i++)
    {
        letter = strlwr(substr(value,i,1));
        n =  confind(rus,letter);
        ret += n>0 ? conpeek(lat,n) : letter;
    }

    return letteronly ? strkeep(ret,'abcdefghijklmnopqrstuvwxyz0123456789') : ret;
}
За это сообщение автора поблагодарили: EVGL (3), DreamCreator (3), G.Menshikh (1), Antoncheg (1).