No surprises here: an input method is the method used by a
computer user to input text. Various kinds of esoteric hardware that can be used to
communicate with a computer exist, but most of us use some form of a keyboard.

Using a keyboard when working with US ASCII is quite straightforward. There are more
keys on the typical keyboard than the symbols in the ASCII character set, so a one-to-one
mapping of characters to keys is quite feasible. Supporting other languages tends to be
less straightforward.

Let us first examine the case of scripts for European languages (like German or
French) that share a lot in common with the Roman script. These scripts requiring a few
extra symbols and special characters and so for these languages, it may suffice to devise
a keyboard with additional keys for these special characters. Such keyboards would
naturally be limited to one (or a few similar) languages. Alternatively, one could think
of a generic Compose key that can be used to specify special
characters by grouping one or more regular keys. The Compose
key method is not too bothersome as long as the special characters so accessed do not
occur too frequently in typical text.

What if the language's script is radically different from the Roman script. If the
number of unique symbols in these scripts is small, an existing keyboard can be used by
defining a new keyboard map that maps keys to the required language characters. Switching
between the regular ASCII mode and the extended language mode can be done by pressing a
special ModeSwitch hot key on the keyboard.

However even this approach breaks down for the Far Eastern languages. These languages
have very large number of symbols, ranging in the low thousands. For such languages, the
``one key to one glyph'' mapping method is just not feasible as this would result in an
unwieldy keyboard. Thus the input methods used for these languages needs to be more
sophisticated. Typical far eastern input methods require a high degree of interaction
with the user. Users use the keyboard to input an initial set of keys. The input method
algorithm then presents a menu of possible choices that the user selects from. In another
possible input method, the user inputs the phonetic equivalent of the ideogram she
desires and the software assists her in narrowing the selection down to the precise glyph
desired.