1. A method for language learning, the method implemented on a computing device, the method comprising: retrieving text from a memory of the computing device; replacing each of at least two different portions of the text with a corresponding key word or phrase; displaying the text having the at least two key words or phrases in a graphical user interface to a learner using the computing device, the text having at least two active regions, each active region corresponding to a respective one of the at least two key words or phrases, wherein the active regions each comprise the respective one of the key words or phrases; selecting, by the learner from an input of the computing device, a first active region of the active regions by selecting a corresponding first key word or phrase of the key words or phrases; displaying, on the computing device, a first menu of linguistic choices in response to the selected first key word or phrase, each key word or phrase having an associated menu, each key word or phrase representing a type of answer selection in the associating menu, the linguistic choices for each menu comprising at least two linguistically correct choices and a linguistically incorrect choice; selecting, by the learner, one of the linguistic choices in the first menu; providing an error message, to the learner and through the graphical user interface, at the time of selection, when an incorrect linguistic choice is selected, the error message comprising an explanation as to why the selection is incorrect; and when a correct linguistic choice is selected in the step of selecting, by the learner, one of the linguistic choices, the method further comprises: replacing the first key word or phrase with the selected linguistic choice by the computing device, causing linguistic choices in a second menu associated with another of the active regions in the text to change corresponding to the selected correct choice from the first active region, selecting, by the learner, the another of the active regions and displaying the second menu associated therewith, selecting, by the learner, a linguistic choice in the second menu, determining, by the computing device, whether the linguistic choice selected from the second menu is linguistically compatible with the linguistic choice selected from the first menu of the first active region, and providing another error message when the linguistic choice selected from each of the remaining active regions is incompatible with the linguistic choice selected from the menu of previously selected menu choices, and wherein the active regions correspond to a choice of content of the text that needs to be made by a language learner.