11. A non-transitory computer readable memory storing instructions configured to, in response to being executed by a computing device, cause the computing device to perform operations for translating user input into at least one word having multiple characters, the operations comprising: displaying a keyboard on a display, wherein the keyboard comprises multiple character indicators; receiving a sequence of user inputs; encoding the sequence of user inputs into a sequence of discrete input directions by selecting, from a set of predetermined primary directions, a discrete direction most closely matching, or exactly matching, each user input; and identifying, using the sequence of user inputs, at least one word in a stored dictionary, by matching the sequence of discrete input directions to one or more patterns corresponding to words stored in the dictionary; wherein each of the one or more patterns corresponding to a word specifies a sequence of discrete directions from the set of predetermined primary directions; wherein each discrete direction in each sequence of discrete directions specifies a relative directional relationship between; a position or area of the keyboard associated with a first character of a pair of sequential characters in the word corresponding to that pattern, and a position or area of the keyboard associated with a second character of the pair of sequential characters; and wherein matching the sequence of discrete input directions to the one or more patterns comprises finding matches between: items in the sequence of discrete input directions, and items in the sequence of discrete directions corresponding to each of the one or more patterns.
11. A non-transitory computer readable memory storing instructions configured to, in response to being executed by a computing device, cause the computing device to perform operations for translating user input into at least one word having multiple characters, the operations comprising: displaying a keyboard on a display, wherein the keyboard comprises multiple character indicators; receiving a sequence of user inputs; encoding the sequence of user inputs into a sequence of discrete input directions by selecting, from a set of predetermined primary directions, a discrete direction most closely matching, or exactly matching, each user input; and identifying, using the sequence of user inputs, at least one word in a stored dictionary, by matching the sequence of discrete input directions to one or more patterns corresponding to words stored in the dictionary; wherein each of the one or more patterns corresponding to a word specifies a sequence of discrete directions from the set of predetermined primary directions; wherein each discrete direction in each sequence of discrete directions specifies a relative directional relationship between; a position or area of the keyboard associated with a first character of a pair of sequential characters in the word corresponding to that pattern, and a position or area of the keyboard associated with a second character of the pair of sequential characters; and wherein matching the sequence of discrete input directions to the one or more patterns comprises finding matches between: items in the sequence of discrete input directions, and items in the sequence of discrete directions corresponding to each of the one or more patterns. 13. The computer-readable memory of claim 11 , wherein the operations further comprise receiving an indication of a start position or area on a virtual keyboard, wherein the sequence of user inputs are received via the virtual keyboard.