Punto Switcher did that in old good times. I guess it simply monitors for entered text, try convert it to another layout and check dictionary if such word exists and then replaces text somehow (by sending X backspaces and corrected text via SendKeys), as weell as auto-switching layout.
↧