Видимо нужно отплясывать от латинской раскладки, как Вы и делаете. Но, на мой взгляд нужно в латинской учитывать при анализе символы разделители. Это поможет попадать с перекодировкой в случаях с английскими словами с после/перед/и вокруг пунктуацией. Если попали - проблем нету. Дальше с учётом же символов разделителей, которые могут быть и нац.символами(я их перечислял) производить анализ национальных раскладок. Передача на анализ словарикам полностью, с передней пунктуацией, с задней пунктуацией, без пунктуации. Если же обнаружено слово переводить его учитывая доп пунктуацию. Остальные же разделители учитывать как разделители, т.е. отсекать до передачи словарикам, и не переводить при обнаружении слова, а оставлять как есть. Это должно помочь лучше попадать с нац.раскладками и избавиться от перекодировки пунктуации в нац. символы.
К стати возможен ещё вариант с внутрипунктуацией. Тоже можно учесть.
И ещё можно учесть индексацию, т.е. послециферки. Напримет ябоко1 яблоко2,