Я решал такую задачу, но давно, более 10 лет назад.
Вот ссылка на мою статью на хабре:
https://habr.com/ru/post/86303/
Предполагаем, что в одном слове нельзя смешивать кириллицу и латиницу вместе. Слово должно состоять либо только из кириллицы, либо из латиницы. Если есть смешивание алфавитов, то надо привести слово к нужной кодировке.
Идея простая: программа пытается определить язык, на котором написано слово путём определения вхождения однозначно русских букв, таких как Ё, Ж, З, Ф, Я и т.д., и так же для английского: F, L, Q, S, V, W, Z и т.д.
После этого в слове принудительно заменяются все неоднозначные буквы (А, О, Е, У, Y, Х, X...) на соответствующие буквы того языка, который мы определили.
Можно пойти другим путём. Привести слово сначала к латинской кодировке, затем к латинице. И каждое из слов проверить в словаре. Если такое слово там найдено, то применить это слово. Надо будет доработать тот мой алгоритм, займусь как-нибудь.
Надеюсь, понятно объяснил.