I feel like "when will you learn" is a totally legit translation — as an exclamation, kind of like "dang it, when are you gonna finally learn??" My gut sense says it's present tense because while it's in the future, you're talking about something hypothetical. Native speakers?
I'd go with you on that. "When do you learn?" is more a question of 'what time'. It isn't a question a native English speaker would ask. "When do you have time to learn?", or "When do you learn best/<insert subject>?" are more likely to be asked. "When will you learn?" suits better as an independent question.
It really depends on context. If they wanted to clearly make it "will" they would add a werde. Otherwise "when will you learn" I think actually borders on being an idiom -which may have an equivalent yet entirely different phrase in German for the sentiment, like "Dogs never stop chasing the stick." Or something weird like that... For the translation they accept "When do you learn" I could totally see a context where they mean to ask exactly that, namely in teacher's seminar discussing successful pedagogy.
- To my best understanding, Wenn can be translated to "if" or "once (when)", while Wann can be translated to only "when." So for example, you would use "wann" when describing a point in time... "Wann magst du mein Spielzeug?" (when do you want my toy), then you would use "wenn" to describe when/once something happens... "Wir gehen wenn ich bin fertig" (we go once I am ready).
- Another more complicated way to remember is it if the clause after "when" in the sentence can be replaced by another sentence, use "wann", whereas if it does not work, and you are describing "at what time", use "wenn". For example, "Karl weiß, wann sein Hund hat Hunger", the part from "wann" on can be replaced with an entirely new sentence, "Karl weiß viele über Deutsch". The use of "wenn" is not interchangeable. "Wir gehen wenn ich bin fertig" cannot be replaced by "Wir gehen viele über Deutsch".
- If this second thing is too confusing, just rely on the first part. :^)