A language input architecture receives input text (e.g., phonetic text of
a character-based language) entered by a user from an input device (e.g.,
keyboard, voice recognition). The input text is converted to an output
text (e.g., written language text of a character-based language). The
language input architecture has a user interface that displays the output
text and unconverted input text in line with one another. As the input
text is converted, it is replaced in the UI with the converted output
text. In addition to this in-line input feature, the UI enables in-place
editing or error correction without requiring the user to switch modes
from an entry mode to an edit mode. To assist with this in-place editing,
the UI presents pop-up windows containing the phonetic text from which
the output text was converted as well as first and second candidate lists
that contain small and large sets of alternative candidates that might be
used to replace the current output text. The language input user
interface also allows a user to enter a mixed text of different
languages.