Транслит (PHP)

Создавая функцию автоматического транслита с русского в английский, нужно думать прежде всего о том, чтобы этот транслит было удобно воспринимать при чтении. Поэтому лучше не делать попыток сделать «английский вариант» русской буквы уникальной.

С русского на английский

Самый простой и удобный вариант, создать 2 массив. Первый с русским алфавитом, второй с соответствующей каждой русской букве английской транслитерации.

<?php // Функция русского текста в английскую транслитерацию function rus2translit($text) { // Русский алфавит $rus_alphabet = array( 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я' ); // Английская транслитерация $rus_alphabet_translit = array( 'A', 'B', 'V', 'G', 'D', 'E', 'IO', 'ZH', 'Z', 'I', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'C', 'CH', 'SH', 'SH', '`', 'Y', '`', 'E', 'IU', 'IA', 'a', 'b', 'v', 'g', 'd', 'e', 'io', 'zh', 'z', 'i', 'i', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sh', '`', 'y', '`', 'e', 'iu', 'ia' ); return str_replace($rus_alphabet, $rus_alphabet_translit, $text); } $lorem = 'Но чтобы вы поняли, откуда возникает это превратное представление людей, порицающих наслаждение и восхваляющих страдания, я раскрою перед вами всю картину и разъясню, что именно говорил этот человек, открывший истину, которого я бы назвал зодчим счастливой жизни. Действительно, никто не отвергает, не презирает, не избегает наслаждений только из-за того, что это наслаждения, но лишь из-за того, что тех, кто не умеет разумно предаваться наслаждениям, постигают великие страдания. Равно как нет никого, кто возлюбил бы, предпочел и возжаждал бы само страдание только за то, что это страдание, а не потому, что иной раз возникают такие обстоятельства, когда страдания и боль приносят некое и немалое наслаждение. Если воспользоваться простейшим примером, то кто из нас стал бы заниматься какими бы то ни было тягостными физическими упражнениями, если бы это не приносило с собой некоей пользы? И кто мог бы по справедливости упрекнуть стремящегося к наслаждению, которое не несло бы с собой никаких неприятностей, или того, кто избегал бы такого страдания, которое не приносило бы с собой никакого наслаждения?'; echo rus2translit($lorem); ?>

Результат

В результате на экране вы увидите:

No chtoby vy poniali, otkuda voznikaet eto prevratnoe predstavlenie liudei, poricaiushih naslazhdenie i voshvaliaiushih stradaniia, ia raskroiu pered vami vsiu kartinu i raz`iasniu, chto imenno govoril etot chelovek, otkryvshii istinu, kotorogo ia by nazval zodchim schastlivoi zhizni. Deistvitel`no, nikto ne otvergaet, ne preziraet, ne izbegaet naslazhdenii tol`ko iz-za togo, chto eto naslazhdeniia, no lish` iz-za togo, chto teh, kto ne umeet razumno predavat`sia naslazhdeniiam, postigaiut velikie stradaniia. Ravno kak net nikogo, kto vozliubil by, predpochel i vozzhazhdal by samo stradanie tol`ko za to, chto eto stradanie, a ne potomu, chto inoi raz voznikaiut takie obstoiatel`stva, kogda stradaniia i bol` prinosiat nekoe i nemaloe naslazhdenie. Esli vospol`zovat`sia prosteishim primerom, to kto iz nas stal by zanimat`sia kakimi by to ni bylo tiagostnymi fizicheskimi uprazhneniiami, esli by eto ne prinosilo s soboi nekoei pol`zy? I kto mog by po spravedlivosti upreknut` stremiashegosia k naslazhdeniiu, kotoroe ne neslo by s soboi nikakih nepriiatnostei, ili togo, kto izbegal by takogo stradaniia, kotoroe ne prinosilo by s soboi nikakogo naslazhdeniia?

Транслит онлайн на сайте.

Категории

ПрограммированиеPHPСтроки в PHPСтроки

Читайте также

Комментарии

Игорь Воронов

Наибольшие споры как до реформы 1917-18 годов, так и после нее вызывал вопрос, какое из двух кирилловских «и» следует сохранить в русском алфавите. Сторонники сохранения I-с-точкой обосновывали свое предложение тремя очень существенными аргументами: во-первых, желательностью приближения русского алфавита к западно-европейским; во-вторых, тем, что замена И-восьмеричного I-десятеричным дала бы вследствие меньшей ширины этой часто встречающейся буквы экономию около одного процента площади бумаги при письме и печати; в-третьих, гораздо лучшей различимостью I-с-точкой: И-восьмеричное слишком похоже по своей форме на другие русские буквы (Н, К, П, Л). Несмотря на эти аргументы, победу одержали сторонники И-восьмеричного, ссылавшиеся на то, что сохранение этой чаще применявшейся буквы приведет к меньшему изменению традиционной графики русского письма.
Совершенствование советских систем письма, построенных на кирилловской основе, в дальнйшем, видимо, должно пойти в четырех направлениях.
Во-первых, приближение ф

Ответить