Все делает ПХП, и не для каждого имени, а анализируя последние буквы имени и фамилии. Для каждого падежа своя ф-я.
Ф-я очень массивная и сложная. Очень много нюансов, к примеру - надо учитывать кодировку скрипта и самые распространенные имена и фамилии, национальности и прочее.
Встречал где-то ф-ю для преобразования в дательный падеж, но слишком простая, только для русской национальности (то есть на фамилию Шматко она не отреагирует) и для кодировки WIN.