Правильная транслитерация
Задача:
Сервер каждый день получает список данных, который содержит ФИО, город, индекс и адрес на латинице. Цель -> транслитерировать.
Подумаешь, задача, первое, что в голову пришло - это Яндекс переводчик. Всё классно, русские имена, города и адреса, всё зашибись работает, но это не транслит а перевод: например, имя Said переводит как "Сказал" вместо "Саид". Поэтому создал функцию фильтр, которая перед отправкой на яндекс транслитерирует определенные слова, например: (Said->Саид, flat->кв., St=>ул. и т.д.). Но список не заканчивается, всё расширяется и расширяется. (
И еще, слова на латинице пишутся разными, например, улица Пушкинский могут быть St. Pushkinskiy,St. Pushkinskii,St. Puschkinski St. Puschkinsky. И это пример только на окончание "ский" и буква "ш". И яндекс таких слов просто не переводит.
В общем, всё не АЙС.
Функция типа:
strtr($text,array(a=>a,b=>б ...))
тут пока бессильна, так как это функция имя Tatyana транслитерирует как Татыана, а не Татьяна, в лучшем случае Татяна, если сделать strtr($text, array(ya=>я,...))
, нужно море правил, правил для "Ь", "Ъ", чтоб их правильно вставлять.
Посоветуйте, пожалуйста, может, есть сервис, который всё грамотно транслитерирует или ошибки исправляет. Неужели придется изобретать велосипед?