На тему транслита есть полезный сайт http://transliteration.ru/. Для начала приведу таблицы транслитерации, затем исходные тексты.
Транслитерация с использованием латинских буквГОСТ 16876-71 |
ТранслитерацияГОСТ 7.79-2000 |
Транслитерация имен для загранпаспорта РФ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Так называемые дифтонги — сочетания гласной буквы и «й», отражаются следующим образом:
ай — ay
ей — ey или yey ий — iy ой — oy уй — uy ый — yy эй — ey юй — yuy ей — yay |
Исходный код на PHP
взято тут (и мной не проверялся)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php // функция превода текста с кириллицы в траскрипт function encodestring( $st ) { // Сначала заменяем "односимвольные" фонемы. $st = strtr ( $st , "абвгдеёзийклмнопрстуфхъыэ_" , "abvgdeeziyklmnoprstufh'iei" ); $st = strtr ( $st , "АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_" , "ABVGDEEZIYKLMNOPRSTUFH'IEI" ); // Затем - "многосимвольные". $st = strtr ( $st , array ( "ж" => "zh" , "ц" => "ts" , "ч" => "ch" , "ш" => "sh" , "щ" => "shch" , "ь" => "" , "ю" => "yu" , "я" => "ya" , "Ж" => "ZH" , "Ц" => "TS" , "Ч" => "CH" , "Ш" => "SH" , "Щ" => "SHCH" , "Ь" => "" , "Ю" => "YU" , "Я" => "YA" , "ї" => "i" , "Ї" => "Yi" , "є" => "ie" , "Є" => "Ye" ) ); // Возвращаем результат. return $st ; } ?> |
Ну а ниже мой код на C для ГОСТ 16876-71
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | // Для кодировки Windows-1251 (синоним CP1251) static unsigned char tr_rus1[23]={ 'а' , 'б' , 'в' , 'г' , 'д' , 'е' , 'з' , 'и' , 'к' , 'л' , 'м' , 'н' , 'о' , 'п' , 'р' , 'с' , 'т' , 'у' , 'ф' , 'ц' , 'ъ' , 'ы' , 'ь' }; static char tr_trn1[23]={ 'a' , 'b' , 'v' , 'g' , 'd' , 'e' , 'z' , 'i' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'r' , 's' , 't' , 'u' , 'f' , 'c' , '"' , 'y' ,0x27}; static unsigned char tr_rus2[10]={ 'ё' , 'ж' , 'й' , 'х' , 'ч' , 'ш' , 'щ' , 'э' , 'ю' , 'я' }; // static char * tr_trn2[10]={ "jo" , "zh" , "jj" , "kh" , "ch" , "sh" , "shh" , "eh" , "ju" , "ja" }; void translit( char * pVal, const char * pSrc) { while (*pSrc) { unsigned char ch=(unsigned char )(*pSrc); if (ch & 0x80) { // Нужно кодировать char * ps; int ii,jj; unsigned char up=0; if (ch==0xA8) {ch=0xB8;up= 'a' - 'A' ;} else if ((ch<0xE0) && (ch!=0xB8)) { ch+=32;up= 'a' - 'A' ; } ii=0; while (ii<10) { if (tr_rus2[ii]==ch) { ps=tr_trn2[ii]; while (ps[0]) { *pVal=(*ps)-up; ps++;pVal++; } break ; } ii++; } if (ii==10) { ii=0; while (ii<23) { if (tr_rus1[ii]==ch) { *pVal=tr_trn1[ii]-up;pVal++; break ; } ii++; } if (ii==23) { // Не нашли *pVal= '?' ;pVal++; } } } else { // Не нужно кодировать *pVal=*pSrc;pVal++; } pSrc++; } *pVal=0; } |
Harrah's Cherokee Casino & Hotel - JTM Hub
ОтветитьУдалитьThe Cherokee Valley River 시흥 출장샵 Casino, Hotel & Resort, Cherokee · 대구광역 출장마사지 Harrah's Cherokee Casino & Hotel · 포천 출장안마 Harrah's Cherokee Casino 용인 출장마사지 & Hotel · Harrah's Cherokee Casino 군포 출장안마 & Hotel