Перевод в транслит русских и украинских текстов
19 марта 2010, 1:13
Автор: Михаил Серов [1234ru]
Очень простая, но полезная и эффективная функция для перевода русского и украинского текста в транслит.
function translit($str) {
// Сначала заменяем "односимвольные" фонемы.
$str=strtr($str, "абвгдеёзийклмнопрстуфхъьыэ", "abvgdeeziyklmnoprstufh''ie");
$str=strtr($str, "АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЬЫЭ", "ABVGDEEZIYKLMNOPRSTUFH''IE");
// Затем - "многосимвольные".
$str=strtr($str,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"sch", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SCH","Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
return $str;
}
// Сначала заменяем "односимвольные" фонемы.
$str=strtr($str, "абвгдеёзийклмнопрстуфхъьыэ", "abvgdeeziyklmnoprstufh''ie");
$str=strtr($str, "АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЬЫЭ", "ABVGDEEZIYKLMNOPRSTUFH''IE");
// Затем - "многосимвольные".
$str=strtr($str,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"sch", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SCH","Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
return $str;
}
Автор оригинальной функции — Андрей Дрыга (код приводится с небольшими изменениями).
Первоисточник публикации — http://www.softtime.ru/scripts/translit.php.