8. A method for automatically detecting a language of an Internationalized Domain Name (IDN), the method comprising: receiving, via an I/O interface, a string of characters for the IDN; receiving, via an I/O interface, a user selected language corresponding to the IDN; detecting, using one or more processors, the language of the IDN based on analyzing the string of characters for the IDN, wherein the determining comprises: extracting a set of multi-grams from the string of characters, comparing the set of multi-grams against stored multi-grams which were previously extracted from samples of loaded training data for each language of a set of candidate languages, and calculating a probability score for each language of the set of candidate languages; determining that the language of the IDN that was detected does not match the user selected language; rejecting the IDN for generating a domain name in response to the determination that the language of the IDN that was detected does not match the user selected language, wherein rejecting the IDN for generating a domain name comprises transmitting, via an I/O interface, one of a proposed language or a proposed IDN, that was previously stored, to a user; using one of the IDN or the proposed IDN to generate a domain name in response to receiving an indication from the user that the one of the proposed language or the proposed IDN is accepted.
15. The method of claim 8 , wherein detecting the language of the IDN further comprises: presenting the plurality of candidate languages to a user; sorting the plurality of candidate languages based on probability scores of the plurality of candidate languages; and receiving an indication of the language of the IDN from the user.