10. A computer-implemented process for increasing the speed of text entry, comprising: using a computing device for: receiving text in the form of a phonetic string; determining the language and the script of the phonetic string; generating a list of candidates in the determined language and the determined script to replace the phonetic string, while performing automatic script changing when a user changes from typing the text in a first script to typing text in a second script; ranking the candidates in the list of candidates; sending the ranked list of candidates back to the user; the user selecting one of the candidates on the ranked list of candidates to replace the input phonetic string; and replacing the input phonetic string with the user-selected candidate in the text the user is typing.
10. A computer-implemented process for increasing the speed of text entry, comprising: using a computing device for: receiving text in the form of a phonetic string; determining the language and the script of the phonetic string; generating a list of candidates in the determined language and the determined script to replace the phonetic string, while performing automatic script changing when a user changes from typing the text in a first script to typing text in a second script; ranking the candidates in the list of candidates; sending the ranked list of candidates back to the user; the user selecting one of the candidates on the ranked list of candidates to replace the input phonetic string; and replacing the input phonetic string with the user-selected candidate in the text the user is typing. 14. The computer-implemented process of claim 10 , wherein the lexicon and the language model are scalable to accommodate differences in user input devices.