1. A computer-implemented method for providing a definition or a translation, comprising: receiving an input indicating a word selected by a user; determining a user's language; communicating the determined user's language to a definition server and a translation server; sending, simultaneously, a definition request for the word to the definition server along with sending a translation request for the word to the translation server; receiving a response to the definition request from the definition server, wherein the response to the definition request indicates whether there is at least one definition of the word in the user's language; receiving a response to the translation request from the translation server, wherein the response to the translation request indicates whether there is at least one translation of the word in the user's language, wherein the response to the definition request and the response to the translation request are received simultaneously; determining whether to provide the user with a definition or a translation of the word based on the responses from the definition server and the translation server, wherein the determination comprises: determining to provide the user with the definition of the word when the response to the definition request includes at least one definition of the word in the user's language; and determining to provide the user with the translation of the word when the response to the definition request indicates that there is no definition of the word in the user's language and the response to the translation request includes at least one translation of the word in the user's language; and providing the user with the definition or the translation of the word based on the determination of whether to provide the user with a definition or a translation of the word, wherein the providing comprises a bubble showing the at least one definition or the at least one translation of the selected word.