1. A computer implemented method comprising: receiving keystroke data from a keyboard input device; determining a current mapping for the keyboard input device in response to a language for the keyboard input device; identifying characters responsive to the keystroke data and the current mapping; comparing the characters to words in the language; determining whether the characters identify a word in the language based upon the comparison; if a word is identified, accepting the characters as input; if no word is identified, then: selecting an alternative keyboard mapping associated with an alternative language; determining alternative characters based on the keystroke data and the alternative keyboard mapping; comparing the alternative characters to alternative words in an alternative dictionary, the alternative dictionary storing alternative words for an alternative language; and determining that the alternative keyboard mapping is valid if the alternative characters match an alternative word in the alternative dictionary.